@webviz/subsurface-viewer 1.12.4 → 1.13.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 (157) hide show
  1. package/dist/layers/axes/box.fs.glsl.d.ts +1 -1
  2. package/dist/layers/axes/box.fs.glsl.js +0 -2
  3. package/dist/layers/axes/box.fs.glsl.js.map +1 -1
  4. package/dist/layers/axes/box.vs.glsl.d.ts +1 -1
  5. package/dist/layers/axes/box.vs.glsl.js +0 -2
  6. package/dist/layers/axes/box.vs.glsl.js.map +1 -1
  7. package/dist/layers/axes/boxLayer.js +2 -1
  8. package/dist/layers/axes/boxLayer.js.map +1 -1
  9. package/dist/layers/axes2d/axes2DLayer.js +4 -3
  10. package/dist/layers/axes2d/axes2DLayer.js.map +1 -1
  11. package/dist/layers/axes2d/label.fs.glsl.d.ts +1 -1
  12. package/dist/layers/axes2d/label.fs.glsl.js +0 -2
  13. package/dist/layers/axes2d/label.fs.glsl.js.map +1 -1
  14. package/dist/layers/axes2d/label.vs.glsl.d.ts +1 -1
  15. package/dist/layers/axes2d/label.vs.glsl.js +0 -2
  16. package/dist/layers/axes2d/label.vs.glsl.js.map +1 -1
  17. package/dist/layers/axes2d/line.fs.glsl.d.ts +1 -1
  18. package/dist/layers/axes2d/line.fs.glsl.js +0 -2
  19. package/dist/layers/axes2d/line.fs.glsl.js.map +1 -1
  20. package/dist/layers/axes2d/line.vs.glsl.d.ts +1 -1
  21. package/dist/layers/axes2d/line.vs.glsl.js +0 -2
  22. package/dist/layers/axes2d/line.vs.glsl.js.map +1 -1
  23. package/dist/layers/colormap/colormap.fs.glsl.d.ts +1 -1
  24. package/dist/layers/colormap/colormap.fs.glsl.js +0 -2
  25. package/dist/layers/colormap/colormap.fs.glsl.js.map +1 -1
  26. package/dist/layers/colormap/colormapLayer.js +7 -1
  27. package/dist/layers/colormap/colormapLayer.js.map +1 -1
  28. package/dist/layers/gpglLayers/gpglValueMappedSurfaceLayer.d.ts +120 -0
  29. package/dist/layers/gpglLayers/gpglValueMappedSurfaceLayer.js +495 -0
  30. package/dist/layers/gpglLayers/gpglValueMappedSurfaceLayer.js.map +1 -0
  31. package/dist/layers/gpglLayers/texTriangle.fs.glsl.d.ts +2 -0
  32. package/dist/layers/gpglLayers/texTriangle.fs.glsl.js +59 -0
  33. package/dist/layers/gpglLayers/texTriangle.fs.glsl.js.map +1 -0
  34. package/dist/layers/gpglLayers/texTriangle.vs.glsl.d.ts +2 -0
  35. package/dist/layers/gpglLayers/texTriangle.vs.glsl.js +45 -0
  36. package/dist/layers/gpglLayers/texTriangle.vs.glsl.js.map +1 -0
  37. package/dist/layers/gpglLayers/triangle.fs.glsl.d.ts +2 -0
  38. package/dist/layers/gpglLayers/triangle.fs.glsl.js +29 -0
  39. package/dist/layers/gpglLayers/triangle.fs.glsl.js.map +1 -0
  40. package/dist/layers/gpglLayers/triangle.vs.glsl.d.ts +2 -0
  41. package/dist/layers/gpglLayers/triangle.vs.glsl.js +45 -0
  42. package/dist/layers/gpglLayers/triangle.vs.glsl.js.map +1 -0
  43. package/dist/layers/gpglLayers/triangleLine.fs.glsl.d.ts +2 -0
  44. package/dist/layers/gpglLayers/triangleLine.fs.glsl.js +21 -0
  45. package/dist/layers/gpglLayers/triangleLine.fs.glsl.js.map +1 -0
  46. package/dist/layers/gpglLayers/triangleLine.vs.glsl.d.ts +2 -0
  47. package/dist/layers/gpglLayers/triangleLine.vs.glsl.js +30 -0
  48. package/dist/layers/gpglLayers/triangleLine.vs.glsl.js.map +1 -0
  49. package/dist/layers/gpglLayers/typeDefs.d.ts +7 -1
  50. package/dist/layers/gpglLayers/typeDefs.js.map +1 -1
  51. package/dist/layers/grid3d/grid3dLayer.d.ts +1 -1
  52. package/dist/layers/grid3d/grid3dLayer.js +1 -1
  53. package/dist/layers/grid3d/grid3dLayer.js.map +1 -1
  54. package/dist/layers/grid3d/line.fs.glsl.d.ts +1 -1
  55. package/dist/layers/grid3d/line.fs.glsl.js +0 -2
  56. package/dist/layers/grid3d/line.fs.glsl.js.map +1 -1
  57. package/dist/layers/grid3d/line.vs.glsl.d.ts +1 -1
  58. package/dist/layers/grid3d/line.vs.glsl.js +0 -2
  59. package/dist/layers/grid3d/line.vs.glsl.js.map +1 -1
  60. package/dist/layers/grid3d/privateGrid3dLayer.js +3 -1
  61. package/dist/layers/grid3d/privateGrid3dLayer.js.map +1 -1
  62. package/dist/layers/hillshading2d/hillshading2d.fs.glsl.d.ts +1 -1
  63. package/dist/layers/hillshading2d/hillshading2d.fs.glsl.js +0 -2
  64. package/dist/layers/hillshading2d/hillshading2d.fs.glsl.js.map +1 -1
  65. package/dist/layers/hillshading2d/hillshading2dLayer.js +7 -1
  66. package/dist/layers/hillshading2d/hillshading2dLayer.js.map +1 -1
  67. package/dist/layers/index.d.ts +4 -0
  68. package/dist/layers/index.js +2 -0
  69. package/dist/layers/index.js.map +1 -1
  70. package/dist/layers/map/line.fs.glsl.d.ts +1 -1
  71. package/dist/layers/map/line.fs.glsl.js +0 -2
  72. package/dist/layers/map/line.fs.glsl.js.map +1 -1
  73. package/dist/layers/map/line.vs.glsl.d.ts +1 -1
  74. package/dist/layers/map/line.vs.glsl.js +0 -2
  75. package/dist/layers/map/line.vs.glsl.js.map +1 -1
  76. package/dist/layers/map/map.fs.glsl.d.ts +1 -1
  77. package/dist/layers/map/map.fs.glsl.js +0 -2
  78. package/dist/layers/map/map.fs.glsl.js.map +1 -1
  79. package/dist/layers/map/map.vs.glsl.d.ts +1 -1
  80. package/dist/layers/map/map.vs.glsl.js +0 -2
  81. package/dist/layers/map/map.vs.glsl.js.map +1 -1
  82. package/dist/layers/map/mapLayer.d.ts +6 -6
  83. package/dist/layers/map/mapLayer.js +1 -1
  84. package/dist/layers/map/mapLayer.js.map +1 -1
  85. package/dist/layers/map/privateMapLayer.js +3 -1
  86. package/dist/layers/map/privateMapLayer.js.map +1 -1
  87. package/dist/layers/northarrow/northArrow3DLayer.js +2 -1
  88. package/dist/layers/northarrow/northArrow3DLayer.js.map +1 -1
  89. package/dist/layers/northarrow/northarrow.fs.glsl.d.ts +1 -1
  90. package/dist/layers/northarrow/northarrow.fs.glsl.js +0 -2
  91. package/dist/layers/northarrow/northarrow.fs.glsl.js.map +1 -1
  92. package/dist/layers/northarrow/northarrow.vs.glsl.d.ts +1 -1
  93. package/dist/layers/northarrow/northarrow.vs.glsl.js +0 -2
  94. package/dist/layers/northarrow/northarrow.vs.glsl.js.map +1 -1
  95. package/dist/layers/piechart/pieChartLayer.js +2 -1
  96. package/dist/layers/piechart/pieChartLayer.js.map +1 -1
  97. package/dist/layers/piechart/piechart.fs.glsl.d.ts +1 -1
  98. package/dist/layers/piechart/piechart.fs.glsl.js +0 -2
  99. package/dist/layers/piechart/piechart.fs.glsl.js.map +1 -1
  100. package/dist/layers/piechart/piechart.vs.glsl.d.ts +1 -1
  101. package/dist/layers/piechart/piechart.vs.glsl.js +0 -2
  102. package/dist/layers/piechart/piechart.vs.glsl.js.map +1 -1
  103. package/dist/layers/points/privatePointsLayer.js +6 -1
  104. package/dist/layers/points/privatePointsLayer.js.map +1 -1
  105. package/dist/layers/polylines/polyline.fs.glsl.d.ts +1 -1
  106. package/dist/layers/polylines/polyline.fs.glsl.js +0 -2
  107. package/dist/layers/polylines/polyline.fs.glsl.js.map +1 -1
  108. package/dist/layers/polylines/privatePolylinesLayer.js +6 -1
  109. package/dist/layers/polylines/privatePolylinesLayer.js.map +1 -1
  110. package/dist/layers/seismic/seismicLayer.d.ts +105 -0
  111. package/dist/layers/seismic/seismicLayer.js +182 -0
  112. package/dist/layers/seismic/seismicLayer.js.map +1 -0
  113. package/dist/layers/shader_modules/test-precision/precisionForTests-shaders-glsl.d.ts +2 -0
  114. package/dist/layers/shader_modules/test-precision/precisionForTests-shaders-glsl.js +10 -0
  115. package/dist/layers/shader_modules/test-precision/precisionForTests-shaders-glsl.js.map +1 -0
  116. package/dist/layers/shader_modules/test-precision/precisionForTests.d.ts +3 -0
  117. package/dist/layers/shader_modules/test-precision/precisionForTests.js +8 -0
  118. package/dist/layers/shader_modules/test-precision/precisionForTests.js.map +1 -0
  119. package/dist/layers/triangle/line.fs.glsl.d.ts +1 -1
  120. package/dist/layers/triangle/line.fs.glsl.js +0 -2
  121. package/dist/layers/triangle/line.fs.glsl.js.map +1 -1
  122. package/dist/layers/triangle/line.vs.glsl.d.ts +1 -1
  123. package/dist/layers/triangle/line.vs.glsl.js +0 -2
  124. package/dist/layers/triangle/line.vs.glsl.js.map +1 -1
  125. package/dist/layers/triangle/privateTriangleLayer.js +8 -1
  126. package/dist/layers/triangle/privateTriangleLayer.js.map +1 -1
  127. package/dist/layers/triangle/triangle.fs.glsl.d.ts +1 -1
  128. package/dist/layers/triangle/triangle.fs.glsl.js +0 -2
  129. package/dist/layers/triangle/triangle.fs.glsl.js.map +1 -1
  130. package/dist/layers/triangle/triangle.vs.glsl.d.ts +1 -1
  131. package/dist/layers/triangle/triangle.vs.glsl.js +0 -2
  132. package/dist/layers/triangle/triangle.vs.glsl.js.map +1 -1
  133. package/dist/layers/triangle/triangleLayer.d.ts +1 -1
  134. package/dist/layers/triangle/triangleLayer.js +1 -1
  135. package/dist/layers/triangle/triangleLayer.js.map +1 -1
  136. package/dist/layers/utils/colormapTools.d.ts +38 -13
  137. package/dist/layers/utils/colormapTools.js +1 -1
  138. package/dist/layers/utils/colormapTools.js.map +1 -1
  139. package/dist/layers/well_markers/marker.fs.glsl.d.ts +1 -1
  140. package/dist/layers/well_markers/marker.fs.glsl.js +0 -2
  141. package/dist/layers/well_markers/marker.fs.glsl.js.map +1 -1
  142. package/dist/layers/well_markers/marker.vs.glsl.d.ts +1 -1
  143. package/dist/layers/well_markers/marker.vs.glsl.js +0 -1
  144. package/dist/layers/well_markers/marker.vs.glsl.js.map +1 -1
  145. package/dist/layers/well_markers/wellMarkersLayer.js +8 -1
  146. package/dist/layers/well_markers/wellMarkersLayer.js.map +1 -1
  147. package/dist/utils/Color.d.ts +10 -0
  148. package/dist/utils/Color.js +19 -1
  149. package/dist/utils/Color.js.map +1 -1
  150. package/dist/utils/index.d.ts +1 -0
  151. package/dist/utils/index.js +1 -0
  152. package/dist/utils/index.js.map +1 -1
  153. package/dist/utils/serialize.d.ts +1 -1
  154. package/dist/utils/serialize.js +2 -2
  155. package/dist/utils/serialize.js.map +1 -1
  156. package/dist/utils/typedArray.js.map +1 -1
  157. package/package.json +2 -2
@@ -0,0 +1,495 @@
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
+ import { COORDINATE_SYSTEM, Layer, picking, project32 } from "@deck.gl/core";
11
+ import { GL } from "@luma.gl/constants";
12
+ import { Geometry, Model } from "@luma.gl/engine";
13
+ import { lighting } from "@luma.gl/shadertools";
14
+ import { phongMaterial } from "../shader_modules/phong-lighting/phong-material";
15
+ import { precisionForTests } from "../shader_modules/test-precision/precisionForTests";
16
+ import { createPropertyData } from "../utils/layerTools";
17
+ import { getImageData, } from "../utils/colormapTools";
18
+ import { isTypedArray, loadDataArray, toNormalizedColor, toTypedArray, } from "../../utils";
19
+ import fsShader from "./triangle.fs.glsl";
20
+ import vsShader from "./triangle.vs.glsl";
21
+ import fsTexShader from "./texTriangle.fs.glsl";
22
+ import vsTexShader from "./texTriangle.vs.glsl";
23
+ import fsLineShader from "./triangleLine.fs.glsl";
24
+ import vsLineShader from "./triangleLine.vs.glsl";
25
+ const defaultMaterial = {
26
+ ambient: 0.35,
27
+ diffuse: 0.9,
28
+ shininess: 32,
29
+ specularColor: [38, 38, 38],
30
+ };
31
+ const defaultColormapSetup = {
32
+ valueRange: [0, 1],
33
+ clampRange: undefined,
34
+ clampColor: [0, 255, 0, 200], // green color for clamped values
35
+ undefinedValue: Number.NaN,
36
+ undefinedColor: [255, 0, 0, 200], // red color for undefined values
37
+ smooth: true,
38
+ };
39
+ const defaultProps = {
40
+ "@@type": "GpglValueMappedSurfaceLayer",
41
+ name: "Value Mapped Surface Layer",
42
+ id: "value-mapped-surface",
43
+ data: ["dummy"],
44
+ showMesh: false,
45
+ colormap: {
46
+ colormapName: "seismic",
47
+ },
48
+ colormapSetup: defaultColormapSetup,
49
+ color: [100, 100, 255],
50
+ coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
51
+ material: true, // default material
52
+ smoothShading: false,
53
+ depthTest: true,
54
+ ZIncreasingDownwards: true,
55
+ // deck.gl default props
56
+ visible: true,
57
+ pickable: true,
58
+ };
59
+ /**
60
+ * GpglValueMappedSurfaceLayer is a layer handling surfaces textured by a value map.
61
+ * These values are converted to color using a colormap and associated setup.
62
+ *
63
+ * A primary use case is to display seismic data.
64
+ * The surfaces are expected to be small compared to the ones handled by the triangles layer.
65
+ */
66
+ export class GpglValueMappedSurfaceLayer extends Layer {
67
+ setShaderModuleProps(args) {
68
+ // If material is a boolean, convert it to the default material
69
+ // We need to set a different default material than in the shader module
70
+ if (typeof args["phongMaterial"] === "boolean" &&
71
+ args["phongMaterial"] === true) {
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
+ args["phongMaterial"] = defaultMaterial;
74
+ }
75
+ super.setShaderModuleProps(Object.assign(Object.assign({}, args), { lighting: Object.assign(Object.assign({}, args["lighting"]), { enabled: this.props.material !== false }) }));
76
+ }
77
+ initializeState(context) {
78
+ const gl = context.device;
79
+ this._createModels(gl).then(([triangleModels, meshModels]) => {
80
+ this.setState({
81
+ triangleModels: triangleModels,
82
+ meshModels: meshModels,
83
+ });
84
+ });
85
+ }
86
+ updateState(params) {
87
+ const rebuild = params.props.valueMappedTriangles !==
88
+ params.oldProps.valueMappedTriangles ||
89
+ params.props.triangleMeshes !== params.oldProps.triangleMeshes ||
90
+ params.props.showMesh !== params.oldProps.showMesh ||
91
+ params.props.colormap !== params.oldProps.colormap;
92
+ super.updateState(params);
93
+ if (rebuild) {
94
+ this.initializeState(params.context);
95
+ }
96
+ }
97
+ _consolidateColormap(colormap) {
98
+ var _a;
99
+ if (colormap instanceof Uint8Array) {
100
+ // If colormapProps is a Uint8Array, return it directly
101
+ return colormap;
102
+ }
103
+ if (!colormap || "colormapName" in colormap) {
104
+ return {
105
+ colormapName: (_a = colormap === null || colormap === void 0 ? void 0 : colormap.colormapName) !== null && _a !== void 0 ? _a : "seismic",
106
+ colorTables: this.context.userData
107
+ .colorTables,
108
+ };
109
+ }
110
+ return colormap;
111
+ }
112
+ _createColormapTexture(device, colormap) {
113
+ const textureProps = {
114
+ sampler: {
115
+ addressModeU: "clamp-to-edge",
116
+ addressModeV: "clamp-to-edge",
117
+ minFilter: "linear",
118
+ magFilter: "linear",
119
+ },
120
+ width: 256,
121
+ height: 1,
122
+ format: "rgb8unorm-webgl",
123
+ };
124
+ return device.createTexture(Object.assign(Object.assign({}, textureProps), { data: getImageData(this._consolidateColormap(colormap)) }));
125
+ }
126
+ _createValuesTexture(device, valueMap) {
127
+ return __awaiter(this, void 0, void 0, function* () {
128
+ var _a, _b;
129
+ if ((valueMap === null || valueMap === void 0 ? void 0 : valueMap.values) === undefined) {
130
+ return undefined;
131
+ }
132
+ // fetch data
133
+ const propertiesData = yield loadDataArray(valueMap.values, Float32Array);
134
+ if (!propertiesData) {
135
+ return undefined;
136
+ }
137
+ const smooth = (_b = (_a = this.props.colormapSetup) === null || _a === void 0 ? void 0 : _a.smooth) !== null && _b !== void 0 ? _b : defaultColormapSetup.smooth;
138
+ const textureProps = {
139
+ sampler: {
140
+ addressModeU: "clamp-to-edge",
141
+ addressModeV: "clamp-to-edge",
142
+ minFilter: smooth ? "linear" : "nearest",
143
+ magFilter: smooth ? "linear" : "nearest",
144
+ },
145
+ width: valueMap.width,
146
+ height: valueMap.height,
147
+ format: "r32float",
148
+ };
149
+ return device.createTexture(Object.assign(Object.assign({}, textureProps), { width: valueMap.width, height: valueMap.height, data: propertiesData }));
150
+ });
151
+ }
152
+ _createModels(device) {
153
+ const _super = Object.create(null, {
154
+ getShaders: { get: () => super.getShaders }
155
+ });
156
+ return __awaiter(this, void 0, void 0, function* () {
157
+ var _a, _b, _c;
158
+ const models = [];
159
+ const meshModels = [];
160
+ // Collect promises for all valueMappedTriangles
161
+ const triangleModelPromises = (_b = (_a = this.props.valueMappedTriangles) === null || _a === void 0 ? void 0 : _a.map((texturedTrgs, i) => __awaiter(this, void 0, void 0, function* () {
162
+ var _d, _e, _f;
163
+ const trglGeometry = {
164
+ topology: texturedTrgs.topology,
165
+ attributes: {
166
+ positions: {
167
+ value: yield loadDataArray(texturedTrgs.vertices, Float32Array),
168
+ size: 3,
169
+ },
170
+ normals: {
171
+ value: yield loadDataArray((_d = texturedTrgs.normals) !== null && _d !== void 0 ? _d : [], Float32Array),
172
+ size: 3,
173
+ },
174
+ texCoords: {
175
+ value: yield loadDataArray((_e = texturedTrgs.texCoords) !== null && _e !== void 0 ? _e : [], Float32Array),
176
+ size: 2,
177
+ },
178
+ },
179
+ vertexCount: texturedTrgs.vertexIndices.size,
180
+ indices: {
181
+ value: yield loadDataArray(texturedTrgs.vertexIndices.value, Uint32Array),
182
+ size: 1,
183
+ },
184
+ };
185
+ const colormap = texturedTrgs.valueMap
186
+ ? this._createColormapTexture(device, this.props.colormap)
187
+ : undefined;
188
+ const floatValues = texturedTrgs.valueMap
189
+ ? yield this._createValuesTexture(device, texturedTrgs.valueMap)
190
+ : undefined;
191
+ const bindings = colormap && floatValues
192
+ ? { colormap, valueTexture: floatValues }
193
+ : undefined;
194
+ const fs = bindings ? fsTexShader : fsShader;
195
+ const vs = bindings ? vsTexShader : vsShader;
196
+ const uniforms = bindings
197
+ ? texTrianglesUniforms
198
+ : trianglesUniforms;
199
+ const model = new Model(device, Object.assign(Object.assign({ id: `${this.props.id}-trgl-${i}` }, _super.getShaders.call(this, {
200
+ vs: vs,
201
+ fs: fs,
202
+ modules: [
203
+ project32,
204
+ picking,
205
+ lighting,
206
+ phongMaterial,
207
+ uniforms,
208
+ precisionForTests,
209
+ ],
210
+ })), { bufferLayout: this.getAttributeManager().getBufferLayouts(), geometry: new Geometry(trglGeometry), bindings: bindings, isInstanced: false }));
211
+ // default mesh model if none if provided
212
+ let meshModel = undefined;
213
+ if (!((_f = this.props.triangleMeshes) === null || _f === void 0 ? void 0 : _f.length) && this.props.showMesh) {
214
+ const indices = computeMeshIndices(texturedTrgs.vertexIndices.value, texturedTrgs.topology);
215
+ const meshGeometry = {
216
+ topology: meshTopology(texturedTrgs.topology),
217
+ attributes: {
218
+ positions: {
219
+ value: toTypedArray(texturedTrgs.vertices, Float32Array),
220
+ size: 3,
221
+ },
222
+ },
223
+ vertexCount: indices.length,
224
+ indices: {
225
+ value: toTypedArray(indices, Uint32Array),
226
+ size: 1,
227
+ },
228
+ };
229
+ meshModel = new Model(device, Object.assign(Object.assign({ id: `${this.props.id}-mesh-line-${i}` }, _super.getShaders.call(this, {
230
+ vs: vsLineShader,
231
+ fs: fsLineShader,
232
+ modules: [
233
+ project32,
234
+ picking,
235
+ triangleMeshUniforms,
236
+ precisionForTests,
237
+ ],
238
+ })), { bufferLayout: this.getAttributeManager().getBufferLayouts(), geometry: new Geometry(meshGeometry), isInstanced: false }));
239
+ }
240
+ return { model, meshModel };
241
+ }))) !== null && _b !== void 0 ? _b : [];
242
+ // Await all promises and push to models/meshModels arrays
243
+ const triangleResults = yield Promise.all(triangleModelPromises);
244
+ triangleResults.forEach(({ model, meshModel }) => {
245
+ models.push(model);
246
+ if (meshModel) {
247
+ meshModels.push(meshModel);
248
+ }
249
+ });
250
+ (_c = this.props.triangleMeshes) === null || _c === void 0 ? void 0 : _c.forEach((mesh, i) => {
251
+ var _a, _b;
252
+ const meshGeometry = {
253
+ topology: mesh.topology,
254
+ attributes: {
255
+ positions: {
256
+ value: toTypedArray((_a = mesh.vertices) !== null && _a !== void 0 ? _a : (_b = this.props.valueMappedTriangles[i]) === null || _b === void 0 ? void 0 : _b.vertices, Float32Array),
257
+ size: 3,
258
+ },
259
+ },
260
+ vertexCount: mesh.vertexIndices.size,
261
+ indices: {
262
+ value: toTypedArray(mesh.vertexIndices.value, Uint32Array),
263
+ size: 1,
264
+ },
265
+ };
266
+ meshModels.push(new Model(device, Object.assign(Object.assign({ id: `${this.props.id}-mesh-line-${i}` }, _super.getShaders.call(this, {
267
+ vs: vsLineShader,
268
+ fs: fsLineShader,
269
+ modules: [
270
+ project32,
271
+ picking,
272
+ triangleMeshUniforms,
273
+ precisionForTests,
274
+ ],
275
+ })), { bufferLayout: this.getAttributeManager().getBufferLayouts(), geometry: new Geometry(meshGeometry), isInstanced: false })));
276
+ });
277
+ return [models, meshModels];
278
+ });
279
+ }
280
+ getModels() {
281
+ var _a, _b;
282
+ const triangleModels = ((_a = this.state["triangleModels"]) !== null && _a !== void 0 ? _a : []);
283
+ const meshModels = ((_b = this.state["meshModels"]) !== null && _b !== void 0 ? _b : []);
284
+ return [...triangleModels, ...meshModels];
285
+ }
286
+ _getClampColors(color) {
287
+ if (isTypedArray(color)) {
288
+ // If clampColor is a Uint8Array, return it directly
289
+ if (color.length >= 8) {
290
+ return [
291
+ toNormalizedColor(color.slice(0, 4)),
292
+ toNormalizedColor(color.slice(4, 8)),
293
+ ];
294
+ }
295
+ else if (color.length === 6) {
296
+ return [
297
+ toNormalizedColor(color.slice(0, 3)),
298
+ toNormalizedColor(color.slice(3, 6)),
299
+ ];
300
+ }
301
+ const col = toNormalizedColor(color);
302
+ return [col, col];
303
+ }
304
+ if (Array.isArray(color) && color.length === 2) {
305
+ return [toNormalizedColor(color[0]), toNormalizedColor(color[1])];
306
+ }
307
+ const col = color ? toNormalizedColor(color) : undefined;
308
+ return [col, col];
309
+ }
310
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
311
+ draw(args) {
312
+ var _a, _b;
313
+ if (!this.state["triangleModels"] && !this.state["meshModels"]) {
314
+ return;
315
+ }
316
+ const triangleModels = this.state["triangleModels"];
317
+ const meshModels = this.state["meshModels"];
318
+ const { gl } = args.context;
319
+ if (!this.props.depthTest) {
320
+ gl.disable(GL.DEPTH_TEST);
321
+ }
322
+ gl.enable(GL.POLYGON_OFFSET_FILL);
323
+ gl.polygonOffset(1, 1);
324
+ //
325
+ const [lowClampColors, highClampColor] = this._getClampColors((_b = (_a = this.props.colormapSetup) === null || _a === void 0 ? void 0 : _a.clampColor) !== null && _b !== void 0 ? _b : defaultColormapSetup.clampColor);
326
+ // render all the triangle surfaces
327
+ triangleModels === null || triangleModels === void 0 ? void 0 : triangleModels.forEach((model) => {
328
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
329
+ model.shaderInputs.setProps(Object.assign(Object.assign({}, args.uniforms), { triangles: {
330
+ colormapRange: (_b = (_a = this.props.colormapSetup) === null || _a === void 0 ? void 0 : _a.valueRange) !== null && _b !== void 0 ? _b : defaultColormapSetup.valueRange,
331
+ clampRange: ((_c = this.props.colormapSetup) === null || _c === void 0 ? void 0 : _c.clampRange) === null
332
+ ? null
333
+ : ((_g = (_e = (_d = this.props.colormapSetup) === null || _d === void 0 ? void 0 : _d.clampRange) !== null && _e !== void 0 ? _e : (_f = this.props.colormapSetup) === null || _f === void 0 ? void 0 : _f.valueRange) !== null && _g !== void 0 ? _g : defaultColormapSetup.valueRange),
334
+ useClampColors: ((_h = this.props.colormapSetup) === null || _h === void 0 ? void 0 : _h.clampColor) !== null &&
335
+ ((_j = this.props.colormapSetup) === null || _j === void 0 ? void 0 : _j.clampRange) !== null,
336
+ lowClampColor: lowClampColors,
337
+ highClampColor: highClampColor,
338
+ undefinedValue: (_l = (_k = this.props.colormapSetup) === null || _k === void 0 ? void 0 : _k.undefinedValue) !== null && _l !== void 0 ? _l : defaultColormapSetup.undefinedValue,
339
+ undefinedColor: toNormalizedColor((_o = (_m = this.props.colormapSetup) === null || _m === void 0 ? void 0 : _m.undefinedColor) !== null && _o !== void 0 ? _o : defaultColormapSetup.undefinedColor),
340
+ // Normalize color to [0,1] range.
341
+ uColor: toNormalizedColor((_p = this.props.color) !== null && _p !== void 0 ? _p : defaultProps.color),
342
+ smoothShading: (_q = this.props.smoothShading) !== null && _q !== void 0 ? _q : defaultProps.smoothShading,
343
+ ZIncreasingDownwards: (_r = this.props.ZIncreasingDownwards) !== null && _r !== void 0 ? _r : defaultProps.ZIncreasingDownwards,
344
+ } }));
345
+ model.draw(args.context.renderPass);
346
+ });
347
+ gl.disable(GL.POLYGON_OFFSET_FILL);
348
+ // render all the triangle meshes
349
+ if (this.props.showMesh) {
350
+ meshModels === null || meshModels === void 0 ? void 0 : meshModels.forEach((meshModel) => {
351
+ var _a;
352
+ meshModel.shaderInputs.setProps(Object.assign(Object.assign({}, args.uniforms), { triangleMesh: {
353
+ ZIncreasingDownwards: (_a = this.props.ZIncreasingDownwards) !== null && _a !== void 0 ? _a : defaultProps.ZIncreasingDownwards,
354
+ } }));
355
+ meshModel.draw(args.context.renderPass);
356
+ });
357
+ }
358
+ if (!this.props.depthTest) {
359
+ gl.enable(GL.DEPTH_TEST);
360
+ }
361
+ }
362
+ decodePickingColor() {
363
+ return 0;
364
+ }
365
+ getPickingInfo({ info }) {
366
+ var _a;
367
+ if (!info.color) {
368
+ return info;
369
+ }
370
+ const layer_properties = [];
371
+ const zScale = this.props.modelMatrix ? this.props.modelMatrix[10] : 1;
372
+ if (typeof ((_a = info.coordinate) === null || _a === void 0 ? void 0 : _a[2]) !== "undefined") {
373
+ const depth = (this.props.ZIncreasingDownwards
374
+ ? -info.coordinate[2]
375
+ : info.coordinate[2]) / Math.max(0.001, zScale);
376
+ layer_properties.push(createPropertyData("Depth", depth));
377
+ }
378
+ return Object.assign(Object.assign({}, info), { properties: layer_properties });
379
+ }
380
+ }
381
+ GpglValueMappedSurfaceLayer.layerName = "GpglValueMappedSurfaceLayer";
382
+ GpglValueMappedSurfaceLayer.defaultProps = defaultProps;
383
+ const triangleMeshUniformsBlock = `\
384
+ uniform triangleMeshUniforms {
385
+ bool ZIncreasingDownwards;
386
+ } triangleMesh;
387
+ `;
388
+ // NOTE: this must exactly the same name than in the uniform block
389
+ const triangleMeshUniforms = {
390
+ name: "triangleMesh",
391
+ vs: triangleMeshUniformsBlock,
392
+ fs: undefined,
393
+ uniformTypes: {
394
+ ZIncreasingDownwards: "f32",
395
+ },
396
+ };
397
+ const triangleUniformsBlock = /*glsl*/ `\
398
+ uniform trianglesUniforms {
399
+ vec4 uColor;
400
+ bool smoothShading;
401
+ bool ZIncreasingDownwards;
402
+ } triangles;
403
+ `;
404
+ // NOTE: this must exactly the same name than in the uniform block
405
+ const trianglesUniforms = {
406
+ name: "triangles",
407
+ vs: triangleUniformsBlock,
408
+ fs: triangleUniformsBlock,
409
+ uniformTypes: {
410
+ uColor: "vec4<f32>",
411
+ smoothShading: "u32",
412
+ ZIncreasingDownwards: "u32",
413
+ },
414
+ };
415
+ const texTriangleUniformsBlock = /*glsl*/ `\
416
+ uniform trianglesUniforms {
417
+ vec2 colormapRange;
418
+ vec2 clampRange;
419
+ bool useClampColors;
420
+ vec4 lowClampColor;
421
+ vec4 highClampColor;
422
+ float undefinedValue;
423
+ vec4 undefinedColor;
424
+ bool smoothShading;
425
+ bool ZIncreasingDownwards;
426
+ } triangles;
427
+ `;
428
+ // NOTE: this must exactly the same name than in the uniform block
429
+ const texTrianglesUniforms = {
430
+ name: "triangles",
431
+ vs: texTriangleUniformsBlock,
432
+ fs: texTriangleUniformsBlock,
433
+ uniformTypes: {
434
+ colormapRange: "vec2<f32>",
435
+ clampRange: "vec2<f32>",
436
+ useClampColors: "u32",
437
+ lowClampColor: "vec4<f32>",
438
+ highClampColor: "vec4<f32>",
439
+ undefinedValue: "f32",
440
+ undefinedColor: "vec4<f32>",
441
+ smoothShading: "u32",
442
+ ZIncreasingDownwards: "u32",
443
+ },
444
+ };
445
+ // Helper functions
446
+ function meshTopology(topology) {
447
+ switch (topology) {
448
+ case "triangle-list":
449
+ return "line-list";
450
+ case "triangle-strip":
451
+ return "line-strip";
452
+ default:
453
+ throw new Error(`Unknown topology: ${topology}`);
454
+ }
455
+ }
456
+ function computeMeshIndices(trglIndices, topology) {
457
+ if (topology === "triangle-list") {
458
+ // non optimal, and some edges might be missing
459
+ // non trivial to fix that :/
460
+ return trglIndices;
461
+ }
462
+ if (trglIndices.length === 4) {
463
+ // special case for a rectangle
464
+ return [
465
+ trglIndices[2],
466
+ trglIndices[0],
467
+ trglIndices[1],
468
+ trglIndices[2],
469
+ trglIndices[3],
470
+ trglIndices[1],
471
+ ];
472
+ }
473
+ // triangle strip.
474
+ // missing edges must be added
475
+ if (Array.isArray(trglIndices) && typeof trglIndices[0] === "number") {
476
+ const indices1 = trglIndices
477
+ .filter((_v, index) => index !== 0 && index % 2 === 0)
478
+ .reverse();
479
+ const indices2 = trglIndices.filter((_v, index) => index !== trglIndices.length - 1 && index % 2 === 1);
480
+ return indices1.concat(trglIndices, indices2);
481
+ }
482
+ else {
483
+ const idxArray = trglIndices;
484
+ const indices1 = idxArray
485
+ .filter((_v, index) => index !== 0 && index % 2 === 0)
486
+ .reverse();
487
+ const indices2 = idxArray.filter((_v, index) => index !== trglIndices.length - 1 && index % 2 === 1);
488
+ const mergedIndices = new Uint32Array(idxArray.length + indices1.length + indices2.length);
489
+ mergedIndices.set(indices1, 0);
490
+ mergedIndices.set(idxArray, indices1.length);
491
+ mergedIndices.set(indices2, indices1.length + idxArray.length);
492
+ return mergedIndices;
493
+ }
494
+ }
495
+ //# sourceMappingURL=gpglValueMappedSurfaceLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gpglValueMappedSurfaceLayer.js","sourceRoot":"","sources":["../../../src/layers/gpglLayers/gpglValueMappedSurfaceLayer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const _default: "#version 300 es\n#define SHADER_NAME texture-fragment-shader\n\nuniform sampler2D valueTexture;\nuniform sampler2D colormap;\n\nin vec3 cameraPosition;\n\nin vec4 vPosition;\nin vec3 vNormal;\nin vec2 vTexCoords;\nin vec4 vColor;\n\nout vec4 fragColor;\n\n // Normalize the value to the range [0, 1]\nfloat normalizeValue(float value) {\n return (value - triangles.colormapRange[0]) / (triangles.colormapRange[1] - triangles.colormapRange[0]);\n}\n\nvec4 valueColor(float value) {\n if(value == triangles.undefinedValue) {\n return triangles.undefinedColor;\n }\n if(triangles.useClampColors) {\n if(value < triangles.clampRange[0]) {\n return triangles.lowClampColor;\n } else if(value > triangles.clampRange[1]) {\n return triangles.highClampColor;\n }\n }\n float normalizedValue = normalizeValue(value);\n // apply colormap\n return texture(colormap, vec2(normalizedValue, 0.0));\n}\n\nvoid main(void) {\n vec3 normal = vNormal;\n\n if (!triangles.smoothShading) {\n normal = normalize(cross(dFdx(vPosition.xyz), dFdy(vPosition.xyz)));\n }\n\n vec4 color = vColor;\n \n // Use two sided phong lighting. This has no effect if \"material\" property is not set.\n vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, vPosition.xyz, normal);\n\n // get value from texture\n float value = texture(valueTexture, vTexCoords).r;\n // compute color\n vec4 colormapColor = valueColor(value);\n\n // multiply by colormap color and apply alpha\n fragColor = vec4(lightColor * colormapColor.rgb, colormapColor.a * vColor.a);\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
2
+ export default _default;
@@ -0,0 +1,59 @@
1
+ export default `#version 300 es
2
+ #define SHADER_NAME texture-fragment-shader
3
+
4
+ uniform sampler2D valueTexture;
5
+ uniform sampler2D colormap;
6
+
7
+ in vec3 cameraPosition;
8
+
9
+ in vec4 vPosition;
10
+ in vec3 vNormal;
11
+ in vec2 vTexCoords;
12
+ in vec4 vColor;
13
+
14
+ out vec4 fragColor;
15
+
16
+ // Normalize the value to the range [0, 1]
17
+ float normalizeValue(float value) {
18
+ return (value - triangles.colormapRange[0]) / (triangles.colormapRange[1] - triangles.colormapRange[0]);
19
+ }
20
+
21
+ vec4 valueColor(float value) {
22
+ if(value == triangles.undefinedValue) {
23
+ return triangles.undefinedColor;
24
+ }
25
+ if(triangles.useClampColors) {
26
+ if(value < triangles.clampRange[0]) {
27
+ return triangles.lowClampColor;
28
+ } else if(value > triangles.clampRange[1]) {
29
+ return triangles.highClampColor;
30
+ }
31
+ }
32
+ float normalizedValue = normalizeValue(value);
33
+ // apply colormap
34
+ return texture(colormap, vec2(normalizedValue, 0.0));
35
+ }
36
+
37
+ void main(void) {
38
+ vec3 normal = vNormal;
39
+
40
+ if (!triangles.smoothShading) {
41
+ normal = normalize(cross(dFdx(vPosition.xyz), dFdy(vPosition.xyz)));
42
+ }
43
+
44
+ vec4 color = vColor;
45
+
46
+ // Use two sided phong lighting. This has no effect if "material" property is not set.
47
+ vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, vPosition.xyz, normal);
48
+
49
+ // get value from texture
50
+ float value = texture(valueTexture, vTexCoords).r;
51
+ // compute color
52
+ vec4 colormapColor = valueColor(value);
53
+
54
+ // multiply by colormap color and apply alpha
55
+ fragColor = vec4(lightColor * colormapColor.rgb, colormapColor.a * vColor.a);
56
+ DECKGL_FILTER_COLOR(fragColor, geometry);
57
+ }
58
+ `;
59
+ //# sourceMappingURL=texTriangle.fs.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texTriangle.fs.glsl.js","sourceRoot":"","sources":["../../../src/layers/gpglLayers/texTriangle.fs.glsl.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDd,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: "#version 300 es\n#define SHADER_NAME texture-vertex-shader\n\n// Primitive attributes\nin vec3 positions;\nin vec3 normals;\nin vec2 texCoords;\n\n// Outputs to fragment shader\nout vec3 cameraPosition;\n\nout vec4 vPosition;\nout vec3 vNormal;\nout vec2 vTexCoords;\nout vec4 vColor;\n \nconst vec3 pickingColor = vec3(1.0, 1.0, 0.0);\n\nvoid main(void) {\n geometry.pickingColor = pickingColor;\n\n cameraPosition = project.cameraPosition;\n\n // apply Z increasing downwards transformation if needed\n vec3 position = positions;\n position[2] *= triangles.ZIncreasingDownwards ? -1.0 : 1.0;\n vec3 normal = normals;\n normal[2] *= triangles.ZIncreasingDownwards ? -1.0 : 1.0;\n\n vTexCoords = texCoords;\n \n // convert from projection system to cartesian common space\n vPosition = vec4(project_position(position), 0.0);\n // should the normal be projected: project_normal(normal) ?\n vNormal = normal;\n gl_Position = project_common_position_to_clipspace(vPosition);\n\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n vColor = vec4(1.0, 1.0, 1.0, layer.opacity);\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n";
2
+ export default _default;
@@ -0,0 +1,45 @@
1
+ export default `\
2
+ #version 300 es
3
+ #define SHADER_NAME texture-vertex-shader
4
+
5
+ // Primitive attributes
6
+ in vec3 positions;
7
+ in vec3 normals;
8
+ in vec2 texCoords;
9
+
10
+ // Outputs to fragment shader
11
+ out vec3 cameraPosition;
12
+
13
+ out vec4 vPosition;
14
+ out vec3 vNormal;
15
+ out vec2 vTexCoords;
16
+ out vec4 vColor;
17
+
18
+ const vec3 pickingColor = vec3(1.0, 1.0, 0.0);
19
+
20
+ void main(void) {
21
+ geometry.pickingColor = pickingColor;
22
+
23
+ cameraPosition = project.cameraPosition;
24
+
25
+ // apply Z increasing downwards transformation if needed
26
+ vec3 position = positions;
27
+ position[2] *= triangles.ZIncreasingDownwards ? -1.0 : 1.0;
28
+ vec3 normal = normals;
29
+ normal[2] *= triangles.ZIncreasingDownwards ? -1.0 : 1.0;
30
+
31
+ vTexCoords = texCoords;
32
+
33
+ // convert from projection system to cartesian common space
34
+ vPosition = vec4(project_position(position), 0.0);
35
+ // should the normal be projected: project_normal(normal) ?
36
+ vNormal = normal;
37
+ gl_Position = project_common_position_to_clipspace(vPosition);
38
+
39
+ DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
40
+
41
+ vColor = vec4(1.0, 1.0, 1.0, layer.opacity);
42
+ DECKGL_FILTER_COLOR(vColor, geometry);
43
+ }
44
+ `;
45
+ //# sourceMappingURL=texTriangle.vs.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texTriangle.vs.glsl.js","sourceRoot":"","sources":["../../../src/layers/gpglLayers/texTriangle.vs.glsl.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Cd,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: "#version 300 es\n#define SHADER_NAME texture-fragment-shader\n\nin vec3 cameraPosition;\n\nin vec4 vPosition;\nin vec3 vNormal;\nin vec2 vTexCoords;\nin vec4 vColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n vec3 normal = vNormal;\n\n if (!triangles.smoothShading) {\n normal = normalize(cross(dFdx(vPosition.xyz), dFdy(vPosition.xyz)));\n }\n\n vec4 color = vColor;\n \n // Use two sided phong lighting. This has no effect if \"material\" property is not set.\n vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, vPosition.xyz, normal);\n\n fragColor = vec4(lightColor, vColor.a);\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
2
+ export default _default;