@webviz/subsurface-viewer 1.1.4 → 1.2.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.
- package/dist/components/ColorLegend.d.ts +2 -2
- package/dist/components/InfoCard.js +8 -0
- package/dist/components/InfoCard.js.map +1 -1
- package/dist/components/Map.js +9 -6
- package/dist/components/Map.js.map +1 -1
- package/dist/layers/axes2d/axes2DLayer.d.ts +17 -7
- package/dist/layers/axes2d/axes2DLayer.js +109 -66
- package/dist/layers/axes2d/axes2DLayer.js.map +1 -1
- package/dist/layers/colormap/colormapLayer.d.ts +2 -2
- package/dist/layers/grid3d/cellProperty.fs.glsl.d.ts +2 -0
- package/dist/layers/grid3d/{fragment.fs.glsl.js → cellProperty.fs.glsl.js} +41 -51
- package/dist/layers/grid3d/cellProperty.fs.glsl.js.map +1 -0
- package/dist/layers/grid3d/cellProperty.vs.glsl.d.ts +2 -0
- package/dist/layers/grid3d/cellProperty.vs.glsl.js +47 -0
- package/dist/layers/grid3d/cellProperty.vs.glsl.js.map +1 -0
- package/dist/layers/grid3d/grid3dLayer.d.ts +27 -7
- package/dist/layers/grid3d/grid3dLayer.js +39 -11
- package/dist/layers/grid3d/grid3dLayer.js.map +1 -1
- package/dist/layers/grid3d/nodeProperty.fs.glsl.d.ts +2 -0
- package/dist/layers/grid3d/nodeProperty.fs.glsl.js +66 -0
- package/dist/layers/grid3d/nodeProperty.fs.glsl.js.map +1 -0
- package/dist/layers/grid3d/nodeProperty.vs.glsl.d.ts +2 -0
- package/dist/layers/grid3d/{vertex.glsl.js → nodeProperty.vs.glsl.js} +17 -13
- package/dist/layers/grid3d/nodeProperty.vs.glsl.js.map +1 -0
- package/dist/layers/grid3d/privateGrid3dLayer.d.ts +4 -5
- package/dist/layers/grid3d/privateGrid3dLayer.js +76 -61
- package/dist/layers/grid3d/privateGrid3dLayer.js.map +1 -1
- package/dist/layers/grid3d/typeDefs.d.ts +1 -1
- package/dist/layers/grid3d/webworker.js +22 -13
- package/dist/layers/grid3d/webworker.js.map +1 -1
- package/dist/layers/map/mapLayer.d.ts +2 -2
- package/dist/layers/map/privateMapLayer.d.ts +2 -2
- package/dist/layers/utils/layerTools.d.ts +9 -4
- package/dist/layers/utils/layerTools.js +12 -7
- package/dist/layers/utils/layerTools.js.map +1 -1
- package/package.json +1 -1
- package/dist/layers/grid3d/fragment.fs.glsl.d.ts +0 -2
- package/dist/layers/grid3d/fragment.fs.glsl.js.map +0 -1
- package/dist/layers/grid3d/vertex.glsl.d.ts +0 -2
- package/dist/layers/grid3d/vertex.glsl.js.map +0 -1
@@ -0,0 +1,47 @@
|
|
1
|
+
const vsShader = `\
|
2
|
+
#version 300 es
|
3
|
+
#define SHADER_NAME grid3d-cell-vertex-shader
|
4
|
+
|
5
|
+
in vec3 positions;
|
6
|
+
in vec3 normals;
|
7
|
+
in float properties;
|
8
|
+
|
9
|
+
// Outputs to fragment shader
|
10
|
+
out vec3 cameraPosition;
|
11
|
+
out vec4 position_commonspace;
|
12
|
+
|
13
|
+
flat out vec3 normal;
|
14
|
+
flat out int vertexIndex;
|
15
|
+
flat out float property;
|
16
|
+
|
17
|
+
uniform bool ZIncreasingDownwards;
|
18
|
+
|
19
|
+
const vec3 pickingColor = vec3(1.0, 1.0, 0.0);
|
20
|
+
|
21
|
+
void main(void) {
|
22
|
+
|
23
|
+
vertexIndex = gl_VertexID;
|
24
|
+
cameraPosition = project_uCameraPosition;
|
25
|
+
geometry.pickingColor = pickingColor;
|
26
|
+
|
27
|
+
normal = normals;
|
28
|
+
vec3 position = positions;
|
29
|
+
|
30
|
+
float zSign = ZIncreasingDownwards ? -1.0 : 1.0;
|
31
|
+
|
32
|
+
position.z *= zSign;
|
33
|
+
normal.z *= zSign;
|
34
|
+
|
35
|
+
property = properties;
|
36
|
+
|
37
|
+
position_commonspace = vec4(project_position(position), 0.0);
|
38
|
+
gl_Position = project_common_position_to_clipspace(position_commonspace);
|
39
|
+
|
40
|
+
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
41
|
+
|
42
|
+
vec4 color = vec4(0.0);
|
43
|
+
DECKGL_FILTER_COLOR(color, geometry);
|
44
|
+
}
|
45
|
+
`;
|
46
|
+
export default vsShader;
|
47
|
+
//# sourceMappingURL=cellProperty.vs.glsl.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cellProperty.vs.glsl.js","sourceRoot":"","sources":["../../../src/layers/grid3d/cellProperty.vs.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4ChB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
@@ -4,22 +4,42 @@ import { CompositeLayer } from "@deck.gl/core";
|
|
4
4
|
import type { Material } from "./typeDefs";
|
5
5
|
import PrivateLayer from "./privateGrid3dLayer";
|
6
6
|
import type { ReportBoundingBoxAction } from "../../components/Map";
|
7
|
-
import type { ExtendedLayerProps,
|
7
|
+
import type { ExtendedLayerProps, ColorMapFunctionType } from "../utils/layerTools";
|
8
8
|
export type WebWorkerParams = {
|
9
9
|
points: Float32Array;
|
10
10
|
polys: Uint32Array;
|
11
|
-
properties: Float32Array | Uint16Array;
|
11
|
+
properties: Float32Array | Uint16Array | undefined;
|
12
12
|
undefinedValue: number;
|
13
13
|
};
|
14
14
|
/**
|
15
15
|
* Enumerates possible coloring modes of Grid3D Layer.
|
16
16
|
*/
|
17
17
|
export declare enum TGrid3DColoringMode {
|
18
|
+
/** A continuous property is provided to colorize the cells. */
|
18
19
|
Property = 0,
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
/** A discrete property is provided to colorize the cells. */
|
21
|
+
DiscreteProperty = 1,
|
22
|
+
/** Coloring using the X value of the cell nodes. */
|
23
|
+
X = 2,
|
24
|
+
/** Coloring using the Y value of the cell nodes. */
|
25
|
+
Y = 3,
|
26
|
+
/** Coloring using the Z value of the cell nodes. */
|
27
|
+
Z = 4
|
22
28
|
}
|
29
|
+
/**
|
30
|
+
* Returns true if the coloring mode is geometric, that is based on the X, Y or Z coordinates
|
31
|
+
* of the cell nodes. In that case no explicit property data is required.
|
32
|
+
* @param coloringMode coloring mode.
|
33
|
+
* @returns true if the coloring mode is geometric.
|
34
|
+
*/
|
35
|
+
export declare function isGeometricProperty(coloringMode: TGrid3DColoringMode): boolean;
|
36
|
+
/**
|
37
|
+
* Returns true if the coloring mode is discrete. In that case an explicit property data is required,
|
38
|
+
* with integer values ranging from 0 to N, where N is the number of discrete property values.
|
39
|
+
* @param coloringMode coloring mode
|
40
|
+
* @returns true if the property values are discrete.
|
41
|
+
*/
|
42
|
+
export declare function isDiscreteProperty(coloringMode: TGrid3DColoringMode): boolean;
|
23
43
|
export interface IDiscretePropertyValueName {
|
24
44
|
value: number;
|
25
45
|
name: string;
|
@@ -41,7 +61,7 @@ export interface Grid3DLayerProps extends ExtendedLayerProps {
|
|
41
61
|
* If propertiesData is provided as Uint16Array it is assumed that all the values are in range [0, N].
|
42
62
|
* If colorMapFunction is Uint8Array the property values are used as color indices.
|
43
63
|
*/
|
44
|
-
propertiesData: string | number[] | Float32Array | Uint16Array;
|
64
|
+
propertiesData: string | number[] | Float32Array | Uint16Array | undefined;
|
45
65
|
/**
|
46
66
|
* Discrete propety value-name pairs to be displayed in cursor readouts.
|
47
67
|
* The property values are used as the array indices.
|
@@ -72,7 +92,7 @@ export interface Grid3DLayerProps extends ExtendedLayerProps {
|
|
72
92
|
* E.g. [255, 0, 0] for constant red cells.
|
73
93
|
* Can be defined as Uint8Array containing [R, G, B] triplets in [0, 255] range each.
|
74
94
|
*/
|
75
|
-
colorMapFunction?:
|
95
|
+
colorMapFunction?: ColorMapFunctionType | Uint8Array;
|
76
96
|
/**
|
77
97
|
* Value in propertiesData indicating that the property is undefined.
|
78
98
|
* When propertiesData is Uint16Array the value is index in discretePropertyValueNames if provided.
|
@@ -83,9 +83,9 @@ function load_data(pointsData, polysData, propertiesData, loadProperties) {
|
|
83
83
|
return __awaiter(this, void 0, void 0, function* () {
|
84
84
|
const points = yield loadData(pointsData, Float32Array);
|
85
85
|
const polys = yield loadData(polysData, Uint32Array);
|
86
|
-
const properties = loadProperties
|
86
|
+
const properties = loadProperties && propertiesData
|
87
87
|
? yield loadPropertiesData(propertiesData)
|
88
|
-
:
|
88
|
+
: undefined;
|
89
89
|
return Promise.all([points, polys, properties]);
|
90
90
|
});
|
91
91
|
}
|
@@ -94,11 +94,37 @@ function load_data(pointsData, polysData, propertiesData, loadProperties) {
|
|
94
94
|
*/
|
95
95
|
export var TGrid3DColoringMode;
|
96
96
|
(function (TGrid3DColoringMode) {
|
97
|
+
/** A continuous property is provided to colorize the cells. */
|
97
98
|
TGrid3DColoringMode[TGrid3DColoringMode["Property"] = 0] = "Property";
|
98
|
-
|
99
|
-
TGrid3DColoringMode[TGrid3DColoringMode["
|
100
|
-
|
99
|
+
/** A discrete property is provided to colorize the cells. */
|
100
|
+
TGrid3DColoringMode[TGrid3DColoringMode["DiscreteProperty"] = 1] = "DiscreteProperty";
|
101
|
+
/** Coloring using the X value of the cell nodes. */
|
102
|
+
TGrid3DColoringMode[TGrid3DColoringMode["X"] = 2] = "X";
|
103
|
+
/** Coloring using the Y value of the cell nodes. */
|
104
|
+
TGrid3DColoringMode[TGrid3DColoringMode["Y"] = 3] = "Y";
|
105
|
+
/** Coloring using the Z value of the cell nodes. */
|
106
|
+
TGrid3DColoringMode[TGrid3DColoringMode["Z"] = 4] = "Z";
|
101
107
|
})(TGrid3DColoringMode || (TGrid3DColoringMode = {}));
|
108
|
+
/**
|
109
|
+
* Returns true if the coloring mode is geometric, that is based on the X, Y or Z coordinates
|
110
|
+
* of the cell nodes. In that case no explicit property data is required.
|
111
|
+
* @param coloringMode coloring mode.
|
112
|
+
* @returns true if the coloring mode is geometric.
|
113
|
+
*/
|
114
|
+
export function isGeometricProperty(coloringMode) {
|
115
|
+
return (coloringMode === TGrid3DColoringMode.X ||
|
116
|
+
coloringMode === TGrid3DColoringMode.Y ||
|
117
|
+
coloringMode === TGrid3DColoringMode.Z);
|
118
|
+
}
|
119
|
+
/**
|
120
|
+
* Returns true if the coloring mode is discrete. In that case an explicit property data is required,
|
121
|
+
* with integer values ranging from 0 to N, where N is the number of discrete property values.
|
122
|
+
* @param coloringMode coloring mode
|
123
|
+
* @returns true if the property values are discrete.
|
124
|
+
*/
|
125
|
+
export function isDiscreteProperty(coloringMode) {
|
126
|
+
return coloringMode === TGrid3DColoringMode.DiscreteProperty;
|
127
|
+
}
|
102
128
|
const defaultProps = {
|
103
129
|
"@@type": "Grid3DLayer",
|
104
130
|
name: "Grid 3D",
|
@@ -123,7 +149,8 @@ export default class Grid3DLayer extends CompositeLayer {
|
|
123
149
|
return isLoaded && isFinished;
|
124
150
|
}
|
125
151
|
rebuildData(reportBoundingBox) {
|
126
|
-
|
152
|
+
var _a;
|
153
|
+
const p = load_data(this.props.pointsData, this.props.polysData, this.props.propertiesData, !isGeometricProperty((_a = this.props.coloringMode) !== null && _a !== void 0 ? _a : TGrid3DColoringMode.Property));
|
127
154
|
p.then(([points, polys, properties]) => {
|
128
155
|
const bbox = GetBBox(points);
|
129
156
|
// Using inline web worker for calculating the triangle mesh from
|
@@ -206,14 +233,15 @@ export default class Grid3DLayer extends CompositeLayer {
|
|
206
233
|
}
|
207
234
|
getPropertyValueRange() {
|
208
235
|
const bbox = this.state["bbox"];
|
209
|
-
const zSign = this.props.ZIncreasingDownwards ? -1.0 : 1.0;
|
210
236
|
switch (this.props.coloringMode) {
|
211
237
|
case TGrid3DColoringMode.X:
|
212
238
|
return [bbox[0], bbox[3]];
|
213
239
|
case TGrid3DColoringMode.Y:
|
214
240
|
return [bbox[1], bbox[4]];
|
215
241
|
case TGrid3DColoringMode.Z:
|
216
|
-
return
|
242
|
+
return this.props.ZIncreasingDownwards
|
243
|
+
? [-bbox[5], -bbox[2]]
|
244
|
+
: [bbox[2], bbox[5]];
|
217
245
|
default:
|
218
246
|
return this.state["propertyValueRange"];
|
219
247
|
}
|
@@ -230,13 +258,13 @@ export default class Grid3DLayer extends CompositeLayer {
|
|
230
258
|
return Number.NaN;
|
231
259
|
}
|
232
260
|
getUndefinedPropertyColor() {
|
233
|
-
var _a;
|
261
|
+
var _a, _b;
|
234
262
|
const colorFunc = this.props.colorMapFunction;
|
235
|
-
if (this.props.propertiesData.length === 0 &&
|
263
|
+
if (((_a = this.props.propertiesData) === null || _a === void 0 ? void 0 : _a.length) === 0 &&
|
236
264
|
this.isColorMapFunctionConstantColor(colorFunc)) {
|
237
265
|
return [colorFunc[0], colorFunc[1], colorFunc[2]];
|
238
266
|
}
|
239
|
-
return (
|
267
|
+
return (_b = this.props.undefinedPropertyColor) !== null && _b !== void 0 ? _b : [204, 204, 204];
|
240
268
|
}
|
241
269
|
isColorMapFunctionConstantColor(colorFunc) {
|
242
270
|
return ((Array.isArray(colorFunc) || colorFunc instanceof Uint8Array) &&
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"grid3dLayer.js","sourceRoot":"","sources":["../../../src/layers/grid3d/grid3dLayer.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"grid3dLayer.js","sourceRoot":"","sources":["../../../src/layers/grid3d/grid3dLayer.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
declare const fsShader = "#version 300 es\n#define SHADER_NAME grid3d-node-fragment-shader\n\nin vec3 cameraPosition;\nin vec4 position_commonspace;\nin float property;\n\nflat in vec3 normal;\nflat in int vertexIndex;\n\nout vec4 fragColor;\n\nuniform sampler2D colormap;\n\nuniform float valueRangeMin;\nuniform float valueRangeMax;\nuniform float colorMapRangeMin;\nuniform float colorMapRangeMax;\n\nuniform vec4 colorMapClampColor;\nuniform bool isClampColor;\n\nvec4 getPropertyColor (float propertyValue) {\n vec4 color = vec4(1.0, 1.0, 1.0, 1.0);\n float normalizedValue = (propertyValue - colorMapRangeMin) / (colorMapRangeMax - colorMapRangeMin);\n if (normalizedValue < 0.0 || normalizedValue > 1.0) {\n // Out of range. Use clampcolor.\n if (isClampColor) {\n color = colorMapClampColor;\n if( color[3] == 0.0 ) {\n discard;\n }\n }\n else {\n // Use min/max color to clamp.\n normalizedValue = clamp (normalizedValue, 0.0, 1.0); \n color = texture(colormap, vec2(normalizedValue, 0.5));\n }\n }\n else {\n color = texture(colormap, vec2(normalizedValue, 0.5));\n }\n return color;\n}\n\n\nvoid main(void) {\n if (picking.isActive > 0.5 && !(picking.isAttribute > 0.5)) {\n fragColor = encodeVertexIndexToRGB(vertexIndex); \n return;\n }\n \n // This may happen due to GPU interpolation precision causing color artifacts.\n float propertyValue = clamp(property, valueRangeMin, valueRangeMax);\n\n vec4 color = getPropertyColor(propertyValue);\n\n // Use two sided phong lighting. This has no effect if \"material\" property is not set.\n vec3 lightColor = getPhongLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);\n fragColor = vec4(lightColor, 1.0);\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
|
2
|
+
export default fsShader;
|
@@ -0,0 +1,66 @@
|
|
1
|
+
const fsShader = `\
|
2
|
+
#version 300 es
|
3
|
+
#define SHADER_NAME grid3d-node-fragment-shader
|
4
|
+
|
5
|
+
in vec3 cameraPosition;
|
6
|
+
in vec4 position_commonspace;
|
7
|
+
in float property;
|
8
|
+
|
9
|
+
flat in vec3 normal;
|
10
|
+
flat in int vertexIndex;
|
11
|
+
|
12
|
+
out vec4 fragColor;
|
13
|
+
|
14
|
+
uniform sampler2D colormap;
|
15
|
+
|
16
|
+
uniform float valueRangeMin;
|
17
|
+
uniform float valueRangeMax;
|
18
|
+
uniform float colorMapRangeMin;
|
19
|
+
uniform float colorMapRangeMax;
|
20
|
+
|
21
|
+
uniform vec4 colorMapClampColor;
|
22
|
+
uniform bool isClampColor;
|
23
|
+
|
24
|
+
vec4 getPropertyColor (float propertyValue) {
|
25
|
+
vec4 color = vec4(1.0, 1.0, 1.0, 1.0);
|
26
|
+
float normalizedValue = (propertyValue - colorMapRangeMin) / (colorMapRangeMax - colorMapRangeMin);
|
27
|
+
if (normalizedValue < 0.0 || normalizedValue > 1.0) {
|
28
|
+
// Out of range. Use clampcolor.
|
29
|
+
if (isClampColor) {
|
30
|
+
color = colorMapClampColor;
|
31
|
+
if( color[3] == 0.0 ) {
|
32
|
+
discard;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
else {
|
36
|
+
// Use min/max color to clamp.
|
37
|
+
normalizedValue = clamp (normalizedValue, 0.0, 1.0);
|
38
|
+
color = texture(colormap, vec2(normalizedValue, 0.5));
|
39
|
+
}
|
40
|
+
}
|
41
|
+
else {
|
42
|
+
color = texture(colormap, vec2(normalizedValue, 0.5));
|
43
|
+
}
|
44
|
+
return color;
|
45
|
+
}
|
46
|
+
|
47
|
+
|
48
|
+
void main(void) {
|
49
|
+
if (picking.isActive > 0.5 && !(picking.isAttribute > 0.5)) {
|
50
|
+
fragColor = encodeVertexIndexToRGB(vertexIndex);
|
51
|
+
return;
|
52
|
+
}
|
53
|
+
|
54
|
+
// This may happen due to GPU interpolation precision causing color artifacts.
|
55
|
+
float propertyValue = clamp(property, valueRangeMin, valueRangeMax);
|
56
|
+
|
57
|
+
vec4 color = getPropertyColor(propertyValue);
|
58
|
+
|
59
|
+
// Use two sided phong lighting. This has no effect if "material" property is not set.
|
60
|
+
vec3 lightColor = getPhongLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);
|
61
|
+
fragColor = vec4(lightColor, 1.0);
|
62
|
+
DECKGL_FILTER_COLOR(fragColor, geometry);
|
63
|
+
}
|
64
|
+
`;
|
65
|
+
export default fsShader;
|
66
|
+
//# sourceMappingURL=nodeProperty.fs.glsl.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"nodeProperty.fs.glsl.js","sourceRoot":"","sources":["../../../src/layers/grid3d/nodeProperty.fs.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DhB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
declare const vsShader = "#version 300 es\n#define SHADER_NAME grid3d-node-vertex-shader\n\nin vec3 positions;\nin vec3 normals;\n\n// Outputs to fragment shader\nout vec3 cameraPosition;\nout vec4 position_commonspace;\nout float property;\n\nflat out vec3 normal;\nflat out int vertexIndex;\n\nuniform lowp int coloringMode;\nuniform bool ZIncreasingDownwards;\n\nconst vec3 pickingColor = vec3(1.0, 1.0, 0.0);\n\nvoid main(void) { \n \n vertexIndex = gl_VertexID;\n cameraPosition = project_uCameraPosition; \n geometry.pickingColor = pickingColor;\n\n normal = normals;\n vec3 position = positions;\n\n float zSign = ZIncreasingDownwards ? -1.0 : 1.0;\n\n position.z *= zSign;\n normal.z *= zSign;\n\n switch(coloringMode) {\n case 2:\n property = position.x;\n break;\n case 3:\n property = position.y;\n break;\n case 4:\n property = position.z;\n break;\n // case 0 or default should never be used\n default:\n property = position.z;\n break;\n }\n\n position_commonspace = vec4(project_position(position), 0.0);\n gl_Position = project_common_position_to_clipspace(position_commonspace);\n\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vec4 color = vec4(0.0);\n DECKGL_FILTER_COLOR(color, geometry);\n}\n";
|
2
|
+
export default vsShader;
|
@@ -1,23 +1,19 @@
|
|
1
1
|
const vsShader = `\
|
2
2
|
#version 300 es
|
3
|
-
#define SHADER_NAME grid3d-vertex-shader
|
4
|
-
precision highp float;
|
3
|
+
#define SHADER_NAME grid3d-node-vertex-shader
|
5
4
|
|
6
5
|
in vec3 positions;
|
7
|
-
in float properties;
|
8
6
|
in vec3 normals;
|
9
7
|
|
10
|
-
uniform lowp int coloringMode;
|
11
|
-
|
12
8
|
// Outputs to fragment shader
|
13
9
|
out vec3 cameraPosition;
|
14
10
|
out vec4 position_commonspace;
|
15
|
-
|
16
|
-
out float property_interpolated;
|
11
|
+
out float property;
|
17
12
|
|
18
13
|
flat out vec3 normal;
|
19
14
|
flat out int vertexIndex;
|
20
15
|
|
16
|
+
uniform lowp int coloringMode;
|
21
17
|
uniform bool ZIncreasingDownwards;
|
22
18
|
|
23
19
|
const vec3 pickingColor = vec3(1.0, 1.0, 0.0);
|
@@ -37,11 +33,19 @@ void main(void) {
|
|
37
33
|
normal.z *= zSign;
|
38
34
|
|
39
35
|
switch(coloringMode) {
|
40
|
-
case
|
41
|
-
|
42
|
-
|
43
|
-
case 3:
|
44
|
-
|
36
|
+
case 2:
|
37
|
+
property = position.x;
|
38
|
+
break;
|
39
|
+
case 3:
|
40
|
+
property = position.y;
|
41
|
+
break;
|
42
|
+
case 4:
|
43
|
+
property = position.z;
|
44
|
+
break;
|
45
|
+
// case 0 or default should never be used
|
46
|
+
default:
|
47
|
+
property = position.z;
|
48
|
+
break;
|
45
49
|
}
|
46
50
|
|
47
51
|
position_commonspace = vec4(project_position(position), 0.0);
|
@@ -54,4 +58,4 @@ void main(void) {
|
|
54
58
|
}
|
55
59
|
`;
|
56
60
|
export default vsShader;
|
57
|
-
//# sourceMappingURL=
|
61
|
+
//# sourceMappingURL=nodeProperty.vs.glsl.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"nodeProperty.vs.glsl.js","sourceRoot":"","sources":["../../../src/layers/grid3d/nodeProperty.vs.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DhB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
@@ -3,7 +3,7 @@ import { Layer } from "@deck.gl/core";
|
|
3
3
|
import type { UniformValue } from "@luma.gl/core";
|
4
4
|
import { Model } from "@luma.gl/engine";
|
5
5
|
import type { DeckGLLayerContext } from "../../components/Map";
|
6
|
-
import type { ExtendedLayerProps, LayerPickInfo,
|
6
|
+
import type { ExtendedLayerProps, LayerPickInfo, ColorMapFunctionType } from "../utils/layerTools";
|
7
7
|
import { TGrid3DColoringMode, type IDiscretePropertyValueName } from "./grid3dLayer";
|
8
8
|
import type { MeshType, MeshTypeLines } from "./typeDefs";
|
9
9
|
export interface PrivateLayerProps extends ExtendedLayerProps {
|
@@ -14,7 +14,7 @@ export interface PrivateLayerProps extends ExtendedLayerProps {
|
|
14
14
|
colorMapClampColor: Color | undefined | boolean;
|
15
15
|
undefinedPropertyValue: number;
|
16
16
|
undefinedPropertyColor: [number, number, number];
|
17
|
-
colorMapFunction?:
|
17
|
+
colorMapFunction?: ColorMapFunctionType;
|
18
18
|
coloringMode: TGrid3DColoringMode.Property;
|
19
19
|
gridLines: boolean;
|
20
20
|
propertyValueRange: [number, number];
|
@@ -39,8 +39,7 @@ export default class PrivateLayer extends Layer<PrivateLayerProps> {
|
|
39
39
|
info: PickingInfo;
|
40
40
|
}): LayerPickInfo;
|
41
41
|
private getPropertyText;
|
42
|
-
private
|
43
|
-
private getImageData;
|
42
|
+
private getColoringHints;
|
44
43
|
private getPropertyUniforms;
|
45
|
-
private
|
44
|
+
private getColormapTexture;
|
46
45
|
}
|