@webviz/subsurface-viewer 0.0.1-alpha.1

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 (501) hide show
  1. package/dist/DashSubsurfaceViewer.d.ts +56 -0
  2. package/dist/DashSubsurfaceViewer.js +160 -0
  3. package/dist/DashSubsurfaceViewer.js.map +1 -0
  4. package/dist/SubsurfaceViewer.d.ts +65 -0
  5. package/dist/SubsurfaceViewer.js +208 -0
  6. package/dist/SubsurfaceViewer.js.map +1 -0
  7. package/dist/assets/glTF/north_arrow/scene.bin +0 -0
  8. package/dist/assets/glTF/north_arrow/scene.gltf +315 -0
  9. package/dist/assets/glTF/north_arrow/textures/Arrow5_baseColor.png +0 -0
  10. package/dist/assets/glTF/north_arrow/textures/Arrow5_metallicRoughness.png +0 -0
  11. package/dist/assets/glTF/north_arrow/textures/Arrow5_normal.png +0 -0
  12. package/dist/components/ColorLegend.d.ts +26 -0
  13. package/dist/components/ColorLegend.js +19 -0
  14. package/dist/components/ColorLegend.js.map +1 -0
  15. package/dist/components/ColorLegends.d.ts +12 -0
  16. package/dist/components/ColorLegends.js +10 -0
  17. package/dist/components/ColorLegends.js.map +1 -0
  18. package/dist/components/DistanceScale.d.ts +12 -0
  19. package/dist/components/DistanceScale.js +45 -0
  20. package/dist/components/DistanceScale.js.map +1 -0
  21. package/dist/components/InfoCard.d.ts +11 -0
  22. package/dist/components/InfoCard.js +149 -0
  23. package/dist/components/InfoCard.js.map +1 -0
  24. package/dist/components/Map.d.ts +158 -0
  25. package/dist/components/Map.js +867 -0
  26. package/dist/components/Map.js.map +1 -0
  27. package/dist/components/StatusIndicator.d.ts +8 -0
  28. package/dist/components/StatusIndicator.js +20 -0
  29. package/dist/components/StatusIndicator.js.map +1 -0
  30. package/dist/components/ViewAnnotation.d.ts +7 -0
  31. package/dist/components/ViewAnnotation.js +13 -0
  32. package/dist/components/ViewAnnotation.js.map +1 -0
  33. package/dist/components/ViewFooter.d.ts +6 -0
  34. package/dist/components/ViewFooter.js +21 -0
  35. package/dist/components/ViewFooter.js.map +1 -0
  36. package/dist/components/settings/DrawModeSelector.d.ts +18 -0
  37. package/dist/components/settings/DrawModeSelector.js +20 -0
  38. package/dist/components/settings/DrawModeSelector.js.map +1 -0
  39. package/dist/components/settings/LayerProperty.d.ts +6 -0
  40. package/dist/components/settings/LayerProperty.js +39 -0
  41. package/dist/components/settings/LayerProperty.js.map +1 -0
  42. package/dist/components/settings/LayerSettingsButton.d.ts +7 -0
  43. package/dist/components/settings/LayerSettingsButton.js +51 -0
  44. package/dist/components/settings/LayerSettingsButton.js.map +1 -0
  45. package/dist/components/settings/LayersButton.d.ts +8 -0
  46. package/dist/components/settings/LayersButton.js +45 -0
  47. package/dist/components/settings/LayersButton.js.map +1 -0
  48. package/dist/components/settings/NumericInput.d.ts +20 -0
  49. package/dist/components/settings/NumericInput.js +25 -0
  50. package/dist/components/settings/NumericInput.js.map +1 -0
  51. package/dist/components/settings/Settings.d.ts +7 -0
  52. package/dist/components/settings/Settings.js +39 -0
  53. package/dist/components/settings/Settings.js.map +1 -0
  54. package/dist/components/settings/SliderInput.d.ts +29 -0
  55. package/dist/components/settings/SliderInput.js +21 -0
  56. package/dist/components/settings/SliderInput.js.map +1 -0
  57. package/dist/components/settings/ToggleButton.d.ts +17 -0
  58. package/dist/components/settings/ToggleButton.js +19 -0
  59. package/dist/components/settings/ToggleButton.js.map +1 -0
  60. package/dist/index.d.ts +2 -0
  61. package/dist/index.js +3 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/inputSchema/ColorTables.json +51 -0
  64. package/dist/inputSchema/FaultPolygons.json +80 -0
  65. package/dist/inputSchema/Grid.json +39 -0
  66. package/dist/inputSchema/PieChart.json +72 -0
  67. package/dist/inputSchema/WellLog.json +126 -0
  68. package/dist/inputSchema/WellLogTemplate.json +136 -0
  69. package/dist/inputSchema/WellLogs.json +5 -0
  70. package/dist/inputSchema/Wells.json +106 -0
  71. package/dist/inputSchema/schemaValidationUtil.d.ts +5 -0
  72. package/dist/inputSchema/schemaValidationUtil.js +48 -0
  73. package/dist/inputSchema/schemaValidationUtil.js.map +1 -0
  74. package/dist/inputSchema/validator.d.ts +1 -0
  75. package/dist/inputSchema/validator.js +64 -0
  76. package/dist/inputSchema/validator.js.map +1 -0
  77. package/dist/inputSchema/wellCompletions.json +108 -0
  78. package/dist/layers/BoxSelectionLayer/boxSelectionLayer.d.ts +37 -0
  79. package/dist/layers/BoxSelectionLayer/boxSelectionLayer.js +86 -0
  80. package/dist/layers/BoxSelectionLayer/boxSelectionLayer.js.map +1 -0
  81. package/dist/layers/axes/axes-fragment.glsl.d.ts +2 -0
  82. package/dist/layers/axes/axes-fragment.glsl.js +15 -0
  83. package/dist/layers/axes/axes-fragment.glsl.js.map +1 -0
  84. package/dist/layers/axes/axesLayer.d.ts +38 -0
  85. package/dist/layers/axes/axesLayer.js +485 -0
  86. package/dist/layers/axes/axesLayer.js.map +1 -0
  87. package/dist/layers/axes/boxLayer.d.ts +20 -0
  88. package/dist/layers/axes/boxLayer.js +52 -0
  89. package/dist/layers/axes/boxLayer.js.map +1 -0
  90. package/dist/layers/axes/grid-vertex.glsl.d.ts +2 -0
  91. package/dist/layers/axes/grid-vertex.glsl.js +14 -0
  92. package/dist/layers/axes/grid-vertex.glsl.js.map +1 -0
  93. package/dist/layers/axes2d/axes2DLayer.d.ts +58 -0
  94. package/dist/layers/axes2d/axes2DLayer.js +613 -0
  95. package/dist/layers/axes2d/axes2DLayer.js.map +1 -0
  96. package/dist/layers/axes2d/font-atlas.png +0 -0
  97. package/dist/layers/axes2d/label-fragment.glsl.d.ts +2 -0
  98. package/dist/layers/axes2d/label-fragment.glsl.js +38 -0
  99. package/dist/layers/axes2d/label-fragment.glsl.js.map +1 -0
  100. package/dist/layers/axes2d/label-vertex.glsl.d.ts +2 -0
  101. package/dist/layers/axes2d/label-vertex.glsl.js +21 -0
  102. package/dist/layers/axes2d/label-vertex.glsl.js.map +1 -0
  103. package/dist/layers/axes2d/line-fragment.glsl.d.ts +2 -0
  104. package/dist/layers/axes2d/line-fragment.glsl.js +15 -0
  105. package/dist/layers/axes2d/line-fragment.glsl.js.map +1 -0
  106. package/dist/layers/axes2d/line-vertex.glsl.d.ts +2 -0
  107. package/dist/layers/axes2d/line-vertex.glsl.js +14 -0
  108. package/dist/layers/axes2d/line-vertex.glsl.js.map +1 -0
  109. package/dist/layers/colormap/colormap.fs.glsl.d.ts +2 -0
  110. package/dist/layers/colormap/colormap.fs.glsl.js +42 -0
  111. package/dist/layers/colormap/colormap.fs.glsl.js.map +1 -0
  112. package/dist/layers/colormap/colormapLayer.d.ts +24 -0
  113. package/dist/layers/colormap/colormapLayer.js +150 -0
  114. package/dist/layers/colormap/colormapLayer.js.map +1 -0
  115. package/dist/layers/drawing/drawingLayer.d.ts +17 -0
  116. package/dist/layers/drawing/drawingLayer.js +202 -0
  117. package/dist/layers/drawing/drawingLayer.js.map +1 -0
  118. package/dist/layers/fault_polygons/faultPolygonsLayer.d.ts +9 -0
  119. package/dist/layers/fault_polygons/faultPolygonsLayer.js +43 -0
  120. package/dist/layers/fault_polygons/faultPolygonsLayer.js.map +1 -0
  121. package/dist/layers/grid3d/fragment.fs.glsl.d.ts +2 -0
  122. package/dist/layers/grid3d/fragment.fs.glsl.js +109 -0
  123. package/dist/layers/grid3d/fragment.fs.glsl.js.map +1 -0
  124. package/dist/layers/grid3d/fragment_lines.glsl.d.ts +2 -0
  125. package/dist/layers/grid3d/fragment_lines.glsl.js +21 -0
  126. package/dist/layers/grid3d/fragment_lines.glsl.js.map +1 -0
  127. package/dist/layers/grid3d/grid3dLayer.d.ts +73 -0
  128. package/dist/layers/grid3d/grid3dLayer.js +134 -0
  129. package/dist/layers/grid3d/grid3dLayer.js.map +1 -0
  130. package/dist/layers/grid3d/privateLayer.d.ts +73 -0
  131. package/dist/layers/grid3d/privateLayer.js +174 -0
  132. package/dist/layers/grid3d/privateLayer.js.map +1 -0
  133. package/dist/layers/grid3d/vertex.glsl.d.ts +2 -0
  134. package/dist/layers/grid3d/vertex.glsl.js +43 -0
  135. package/dist/layers/grid3d/vertex.glsl.js.map +1 -0
  136. package/dist/layers/grid3d/vertex_lines.glsl.d.ts +2 -0
  137. package/dist/layers/grid3d/vertex_lines.glsl.js +16 -0
  138. package/dist/layers/grid3d/vertex_lines.glsl.js.map +1 -0
  139. package/dist/layers/grid3d/webworker.d.ts +4 -0
  140. package/dist/layers/grid3d/webworker.js +140 -0
  141. package/dist/layers/grid3d/webworker.js.map +1 -0
  142. package/dist/layers/hillshading2d/hillshading2d.fs.glsl.d.ts +2 -0
  143. package/dist/layers/hillshading2d/hillshading2d.fs.glsl.js +62 -0
  144. package/dist/layers/hillshading2d/hillshading2d.fs.glsl.js.map +1 -0
  145. package/dist/layers/hillshading2d/hillshading2dLayer.d.ts +22 -0
  146. package/dist/layers/hillshading2d/hillshading2dLayer.js +101 -0
  147. package/dist/layers/hillshading2d/hillshading2dLayer.js.map +1 -0
  148. package/dist/layers/index.d.ts +34 -0
  149. package/dist/layers/index.js +19 -0
  150. package/dist/layers/index.js.map +1 -0
  151. package/dist/layers/intersection/unfoldedGeoJsonLayer.d.ts +10 -0
  152. package/dist/layers/intersection/unfoldedGeoJsonLayer.js +64 -0
  153. package/dist/layers/intersection/unfoldedGeoJsonLayer.js.map +1 -0
  154. package/dist/layers/map/fragment.fs.glsl.d.ts +2 -0
  155. package/dist/layers/map/fragment.fs.glsl.js +127 -0
  156. package/dist/layers/map/fragment.fs.glsl.js.map +1 -0
  157. package/dist/layers/map/fragment_lines.glsl.d.ts +2 -0
  158. package/dist/layers/map/fragment_lines.glsl.js +21 -0
  159. package/dist/layers/map/fragment_lines.glsl.js.map +1 -0
  160. package/dist/layers/map/mapLayer.d.ts +120 -0
  161. package/dist/layers/map/mapLayer.js +275 -0
  162. package/dist/layers/map/mapLayer.js.map +1 -0
  163. package/dist/layers/map/privateMapLayer.d.ts +76 -0
  164. package/dist/layers/map/privateMapLayer.js +190 -0
  165. package/dist/layers/map/privateMapLayer.js.map +1 -0
  166. package/dist/layers/map/vertex.glsl.d.ts +2 -0
  167. package/dist/layers/map/vertex.glsl.js +45 -0
  168. package/dist/layers/map/vertex.glsl.js.map +1 -0
  169. package/dist/layers/map/vertex_lines.glsl.d.ts +2 -0
  170. package/dist/layers/map/vertex_lines.glsl.js +16 -0
  171. package/dist/layers/map/vertex_lines.glsl.js.map +1 -0
  172. package/dist/layers/map/webworker.d.ts +4 -0
  173. package/dist/layers/map/webworker.js +362 -0
  174. package/dist/layers/map/webworker.js.map +1 -0
  175. package/dist/layers/northarrow/northArrow3DLayer.d.ts +20 -0
  176. package/dist/layers/northarrow/northArrow3DLayer.js +144 -0
  177. package/dist/layers/northarrow/northArrow3DLayer.js.map +1 -0
  178. package/dist/layers/northarrow/northarrow-fragment.glsl.d.ts +2 -0
  179. package/dist/layers/northarrow/northarrow-fragment.glsl.js +15 -0
  180. package/dist/layers/northarrow/northarrow-fragment.glsl.js.map +1 -0
  181. package/dist/layers/northarrow/northarrow-vertex.glsl.d.ts +2 -0
  182. package/dist/layers/northarrow/northarrow-vertex.glsl.js +14 -0
  183. package/dist/layers/northarrow/northarrow-vertex.glsl.js.map +1 -0
  184. package/dist/layers/piechart/fragment.glsl.d.ts +2 -0
  185. package/dist/layers/piechart/fragment.glsl.js +43 -0
  186. package/dist/layers/piechart/fragment.glsl.js.map +1 -0
  187. package/dist/layers/piechart/pieChartLayer.d.ts +40 -0
  188. package/dist/layers/piechart/pieChartLayer.js +174 -0
  189. package/dist/layers/piechart/pieChartLayer.js.map +1 -0
  190. package/dist/layers/piechart/vertex.glsl.d.ts +2 -0
  191. package/dist/layers/piechart/vertex.glsl.js +43 -0
  192. package/dist/layers/piechart/vertex.glsl.js.map +1 -0
  193. package/dist/layers/points/pointsLayer.d.ts +34 -0
  194. package/dist/layers/points/pointsLayer.js +78 -0
  195. package/dist/layers/points/pointsLayer.js.map +1 -0
  196. package/dist/layers/polylines/polylinesLayer.d.ts +50 -0
  197. package/dist/layers/polylines/polylinesLayer.js +157 -0
  198. package/dist/layers/polylines/polylinesLayer.js.map +1 -0
  199. package/dist/layers/selectable_geojson/selectableGeoJsonLayer.d.ts +6 -0
  200. package/dist/layers/selectable_geojson/selectableGeoJsonLayer.js +22 -0
  201. package/dist/layers/selectable_geojson/selectableGeoJsonLayer.js.map +1 -0
  202. package/dist/layers/shader_modules/decoder.d.ts +15 -0
  203. package/dist/layers/shader_modules/decoder.fs.glsl.d.ts +2 -0
  204. package/dist/layers/shader_modules/decoder.fs.glsl.js +40 -0
  205. package/dist/layers/shader_modules/decoder.fs.glsl.js.map +1 -0
  206. package/dist/layers/shader_modules/decoder.js +29 -0
  207. package/dist/layers/shader_modules/decoder.js.map +1 -0
  208. package/dist/layers/shader_modules/index.d.ts +1 -0
  209. package/dist/layers/shader_modules/index.js +2 -0
  210. package/dist/layers/shader_modules/index.js.map +1 -0
  211. package/dist/layers/terrain/map3DLayer.d.ts +42 -0
  212. package/dist/layers/terrain/map3DLayer.js +324 -0
  213. package/dist/layers/terrain/map3DLayer.js.map +1 -0
  214. package/dist/layers/terrain/terrainMapLayer.d.ts +45 -0
  215. package/dist/layers/terrain/terrainMapLayer.js +183 -0
  216. package/dist/layers/terrain/terrainMapLayer.js.map +1 -0
  217. package/dist/layers/terrain/terrainmap.fs.glsl.d.ts +2 -0
  218. package/dist/layers/terrain/terrainmap.fs.glsl.js +134 -0
  219. package/dist/layers/terrain/terrainmap.fs.glsl.js.map +1 -0
  220. package/dist/layers/triangle/fragment.fs.glsl.d.ts +2 -0
  221. package/dist/layers/triangle/fragment.fs.glsl.js +126 -0
  222. package/dist/layers/triangle/fragment.fs.glsl.js.map +1 -0
  223. package/dist/layers/triangle/fragment_lines.glsl.d.ts +2 -0
  224. package/dist/layers/triangle/fragment_lines.glsl.js +21 -0
  225. package/dist/layers/triangle/fragment_lines.glsl.js.map +1 -0
  226. package/dist/layers/triangle/privateTriangleLayer.d.ts +70 -0
  227. package/dist/layers/triangle/privateTriangleLayer.js +108 -0
  228. package/dist/layers/triangle/privateTriangleLayer.js.map +1 -0
  229. package/dist/layers/triangle/test_data/surfacePoints.d.ts +2 -0
  230. package/dist/layers/triangle/test_data/surfacePoints.js +4345 -0
  231. package/dist/layers/triangle/test_data/surfacePoints.js.map +1 -0
  232. package/dist/layers/triangle/test_data/surfaceTriangles.d.ts +2 -0
  233. package/dist/layers/triangle/test_data/surfaceTriangles.js +7393 -0
  234. package/dist/layers/triangle/test_data/surfaceTriangles.js.map +1 -0
  235. package/dist/layers/triangle/triangleLayer.d.ts +60 -0
  236. package/dist/layers/triangle/triangleLayer.js +170 -0
  237. package/dist/layers/triangle/triangleLayer.js.map +1 -0
  238. package/dist/layers/triangle/vertex.glsl.d.ts +2 -0
  239. package/dist/layers/triangle/vertex.glsl.js +35 -0
  240. package/dist/layers/triangle/vertex.glsl.js.map +1 -0
  241. package/dist/layers/triangle/vertex_lines.glsl.d.ts +2 -0
  242. package/dist/layers/triangle/vertex_lines.glsl.js +16 -0
  243. package/dist/layers/triangle/vertex_lines.glsl.js.map +1 -0
  244. package/dist/layers/triangle/webworker.d.ts +4 -0
  245. package/dist/layers/triangle/webworker.js +132 -0
  246. package/dist/layers/triangle/webworker.js.map +1 -0
  247. package/dist/layers/utils/layerTools.d.ts +52 -0
  248. package/dist/layers/utils/layerTools.js +91 -0
  249. package/dist/layers/utils/layerTools.js.map +1 -0
  250. package/dist/layers/utils/propertyMapTools.d.ts +8 -0
  251. package/dist/layers/utils/propertyMapTools.js +21 -0
  252. package/dist/layers/utils/propertyMapTools.js.map +1 -0
  253. package/dist/layers/wells/utils/spline.d.ts +28 -0
  254. package/dist/layers/wells/utils/spline.js +236 -0
  255. package/dist/layers/wells/utils/spline.js.map +1 -0
  256. package/dist/layers/wells/wellsLayer.d.ts +89 -0
  257. package/dist/layers/wells/wellsLayer.js +939 -0
  258. package/dist/layers/wells/wellsLayer.js.map +1 -0
  259. package/dist/package.json +35 -0
  260. package/dist/redux/actions.d.ts +1 -0
  261. package/dist/redux/actions.js +3 -0
  262. package/dist/redux/actions.js.map +1 -0
  263. package/dist/redux/reducer.d.ts +11 -0
  264. package/dist/redux/reducer.js +28 -0
  265. package/dist/redux/reducer.js.map +1 -0
  266. package/dist/redux/store.d.ts +4 -0
  267. package/dist/redux/store.js +10 -0
  268. package/dist/redux/store.js.map +1 -0
  269. package/dist/redux/types.d.ts +43 -0
  270. package/dist/redux/types.js +79 -0
  271. package/dist/redux/types.js.map +1 -0
  272. package/dist/storybook/SubsurfaceViewer.stories.d.ts +455 -0
  273. package/dist/storybook/SubsurfaceViewer.stories.js +537 -0
  274. package/dist/storybook/SubsurfaceViewer.stories.js.map +1 -0
  275. package/dist/storybook/components/InfoCard.stories.d.ts +48 -0
  276. package/dist/storybook/components/InfoCard.stories.js +36 -0
  277. package/dist/storybook/components/InfoCard.stories.js.map +1 -0
  278. package/dist/storybook/components/colorLegends/ContinuousLegend.stories.d.ts +31 -0
  279. package/dist/storybook/components/colorLegends/ContinuousLegend.stories.js +30 -0
  280. package/dist/storybook/components/colorLegends/ContinuousLegend.stories.js.map +1 -0
  281. package/dist/storybook/components/colorLegends/DiscreteLegend.stories.d.ts +31 -0
  282. package/dist/storybook/components/colorLegends/DiscreteLegend.stories.js +30 -0
  283. package/dist/storybook/components/colorLegends/DiscreteLegend.stories.js.map +1 -0
  284. package/dist/storybook/components/colorLegends/IndividualScaleForMap.stories.d.ts +20 -0
  285. package/dist/storybook/components/colorLegends/IndividualScaleForMap.stories.js +66 -0
  286. package/dist/storybook/components/colorLegends/IndividualScaleForMap.stories.js.map +1 -0
  287. package/dist/storybook/components/colorLegends/SingleScaleForMap.stories.d.ts +65 -0
  288. package/dist/storybook/components/colorLegends/SingleScaleForMap.stories.js +94 -0
  289. package/dist/storybook/components/colorLegends/SingleScaleForMap.stories.js.map +1 -0
  290. package/dist/storybook/components/settings/LayerSettingsButton.stories.d.ts +34 -0
  291. package/dist/storybook/components/settings/LayerSettingsButton.stories.js +31 -0
  292. package/dist/storybook/components/settings/LayerSettingsButton.stories.js.map +1 -0
  293. package/dist/storybook/components/settings/NumericInput.stories.d.ts +14 -0
  294. package/dist/storybook/components/settings/NumericInput.stories.js +15 -0
  295. package/dist/storybook/components/settings/NumericInput.stories.js.map +1 -0
  296. package/dist/storybook/components/settings/ToggleButton.stories.d.ts +13 -0
  297. package/dist/storybook/components/settings/ToggleButton.stories.js +14 -0
  298. package/dist/storybook/components/settings/ToggleButton.stories.js.map +1 -0
  299. package/dist/storybook/schemaValidation/sampleData.d.ts +122 -0
  300. package/dist/storybook/schemaValidation/sampleData.js +172 -0
  301. package/dist/storybook/schemaValidation/sampleData.js.map +1 -0
  302. package/dist/storybook/schemaValidation/schemaValidation.stories.d.ts +31 -0
  303. package/dist/storybook/schemaValidation/schemaValidation.stories.js +42 -0
  304. package/dist/storybook/schemaValidation/schemaValidation.stories.js.map +1 -0
  305. package/dist/utils/configuration.d.ts +631 -0
  306. package/dist/utils/configuration.js +36 -0
  307. package/dist/utils/configuration.js.map +1 -0
  308. package/dist/utils/fit-bounds.d.ts +15 -0
  309. package/dist/utils/fit-bounds.js +66 -0
  310. package/dist/utils/fit-bounds.js.map +1 -0
  311. package/dist/utils/measurement.d.ts +6 -0
  312. package/dist/utils/measurement.js +47 -0
  313. package/dist/utils/measurement.js.map +1 -0
  314. package/dist/utils/northArrow.d.ts +113 -0
  315. package/dist/utils/northArrow.js +5 -0
  316. package/dist/utils/northArrow.js.map +1 -0
  317. package/dist/utils/specExtractor.d.ts +3 -0
  318. package/dist/utils/specExtractor.js +24 -0
  319. package/dist/utils/specExtractor.js.map +1 -0
  320. package/dist/viewports/index.d.ts +1 -0
  321. package/dist/viewports/index.js +2 -0
  322. package/dist/viewports/index.js.map +1 -0
  323. package/dist/viewports/intersectionViewport.d.ts +35 -0
  324. package/dist/viewports/intersectionViewport.js +65 -0
  325. package/dist/viewports/intersectionViewport.js.map +1 -0
  326. package/dist/views/index.d.ts +1 -0
  327. package/dist/views/index.js +2 -0
  328. package/dist/views/index.js.map +1 -0
  329. package/dist/views/intersectionView.d.ts +18 -0
  330. package/dist/views/intersectionView.js +17 -0
  331. package/dist/views/intersectionView.js.map +1 -0
  332. package/package.json +35 -0
  333. package/src/DashSubsurfaceViewer.tsx +270 -0
  334. package/src/SubsurfaceViewer.stories.tsx +449 -0
  335. package/src/SubsurfaceViewer.test.tsx +98 -0
  336. package/src/SubsurfaceViewer.tsx +356 -0
  337. package/src/__snapshots__/SubsurfaceViewer.test.tsx.snap +178 -0
  338. package/src/assets/glTF/north_arrow/scene.bin +0 -0
  339. package/src/assets/glTF/north_arrow/scene.gltf +315 -0
  340. package/src/assets/glTF/north_arrow/textures/Arrow5_baseColor.png +0 -0
  341. package/src/assets/glTF/north_arrow/textures/Arrow5_metallicRoughness.png +0 -0
  342. package/src/assets/glTF/north_arrow/textures/Arrow5_normal.png +0 -0
  343. package/src/components/ColorLegend.test.tsx +32 -0
  344. package/src/components/ColorLegend.tsx +80 -0
  345. package/src/components/ColorLegends.test.tsx +97 -0
  346. package/src/components/ColorLegends.tsx +46 -0
  347. package/src/components/DistanceScale.stories.tsx +28 -0
  348. package/src/components/DistanceScale.test.tsx +36 -0
  349. package/src/components/DistanceScale.tsx +84 -0
  350. package/src/components/InfoCard.test.tsx +110 -0
  351. package/src/components/InfoCard.tsx +263 -0
  352. package/src/components/Map.test.tsx +142 -0
  353. package/src/components/Map.tsx +1435 -0
  354. package/src/components/StatusIndicator.test.tsx +14 -0
  355. package/src/components/StatusIndicator.tsx +38 -0
  356. package/src/components/ViewAnnotation.tsx +16 -0
  357. package/src/components/ViewFooter.test.tsx +12 -0
  358. package/src/components/ViewFooter.tsx +30 -0
  359. package/src/components/__snapshots__/ColorLegends.test.tsx.snap +15 -0
  360. package/src/components/__snapshots__/DistanceScale.test.tsx.snap +33 -0
  361. package/src/components/__snapshots__/InfoCard.test.tsx.snap +561 -0
  362. package/src/components/__snapshots__/Map.test.tsx.snap +119 -0
  363. package/src/components/__snapshots__/StatusIndicator.test.tsx.snap +3 -0
  364. package/src/components/__snapshots__/ViewFooter.test.tsx.snap +7 -0
  365. package/src/components/settings/DrawModeSelector.test.tsx +45 -0
  366. package/src/components/settings/DrawModeSelector.tsx +58 -0
  367. package/src/components/settings/DrawModeSelector_performance.test.tsx +35 -0
  368. package/src/components/settings/LayerProperty.test.tsx +35 -0
  369. package/src/components/settings/LayerProperty.tsx +153 -0
  370. package/src/components/settings/LayerProperty_performance.test.tsx +39 -0
  371. package/src/components/settings/LayerSettingsButton.test.tsx +133 -0
  372. package/src/components/settings/LayerSettingsButton.tsx +95 -0
  373. package/src/components/settings/LayersButton.test.tsx +102 -0
  374. package/src/components/settings/LayersButton.tsx +97 -0
  375. package/src/components/settings/NumericInput.test.tsx +25 -0
  376. package/src/components/settings/NumericInput.tsx +67 -0
  377. package/src/components/settings/Settings.tsx +71 -0
  378. package/src/components/settings/SliderInput.test.tsx +28 -0
  379. package/src/components/settings/SliderInput.tsx +71 -0
  380. package/src/components/settings/ToggleButton.test.tsx +25 -0
  381. package/src/components/settings/ToggleButton.tsx +53 -0
  382. package/src/components/settings/__snapshots__/DrawModeSelector.test.tsx.snap +124 -0
  383. package/src/components/settings/__snapshots__/LayerProperty.test.tsx.snap +124 -0
  384. package/src/components/settings/__snapshots__/LayerSettingsButton.test.tsx.snap +36 -0
  385. package/src/components/settings/__snapshots__/LayersButton.test.tsx.snap +83 -0
  386. package/src/components/settings/__snapshots__/NumericInput.test.tsx.snap +123 -0
  387. package/src/components/settings/__snapshots__/SliderInput.test.tsx.snap +244 -0
  388. package/src/components/settings/__snapshots__/ToggleButton.test.tsx.snap +182 -0
  389. package/src/custom.d.ts +9 -0
  390. package/src/index.ts +5 -0
  391. package/src/inputSchema/ColorTables.json +51 -0
  392. package/src/inputSchema/FaultPolygons.json +80 -0
  393. package/src/inputSchema/Grid.json +39 -0
  394. package/src/inputSchema/PieChart.json +72 -0
  395. package/src/inputSchema/WellLog.json +126 -0
  396. package/src/inputSchema/WellLogTemplate.json +136 -0
  397. package/src/inputSchema/WellLogs.json +5 -0
  398. package/src/inputSchema/Wells.json +106 -0
  399. package/src/inputSchema/schemaValidationUtil.tsx +55 -0
  400. package/src/inputSchema/validator.tsx +72 -0
  401. package/src/inputSchema/wellCompletions.json +108 -0
  402. package/src/layers/BoxSelectionLayer/boxSelectionLayer.stories.tsx +172 -0
  403. package/src/layers/BoxSelectionLayer/boxSelectionLayer.tsx +136 -0
  404. package/src/layers/axes/axes-fragment.glsl.ts +15 -0
  405. package/src/layers/axes/axesLayer.stories.tsx +87 -0
  406. package/src/layers/axes/axesLayer.ts +692 -0
  407. package/src/layers/axes/boxLayer.ts +71 -0
  408. package/src/layers/axes/grid-vertex.glsl.ts +14 -0
  409. package/src/layers/axes2d/axes2DLayer.stories.tsx +150 -0
  410. package/src/layers/axes2d/axes2DLayer.ts +841 -0
  411. package/src/layers/axes2d/font-atlas.png +0 -0
  412. package/src/layers/axes2d/label-fragment.glsl.js +37 -0
  413. package/src/layers/axes2d/label-vertex.glsl.js +20 -0
  414. package/src/layers/axes2d/line-fragment.glsl.js +14 -0
  415. package/src/layers/axes2d/line-vertex.glsl.js +13 -0
  416. package/src/layers/colormap/colormap.fs.glsl.ts +42 -0
  417. package/src/layers/colormap/colormapLayer.ts +247 -0
  418. package/src/layers/drawing/drawingLayer.tsx +256 -0
  419. package/src/layers/fault_polygons/faultPolygonsLayer.ts +54 -0
  420. package/src/layers/grid3d/fragment.fs.glsl.ts +109 -0
  421. package/src/layers/grid3d/fragment_lines.glsl.ts +21 -0
  422. package/src/layers/grid3d/grid3dLayer.stories.tsx +172 -0
  423. package/src/layers/grid3d/grid3dLayer.ts +248 -0
  424. package/src/layers/grid3d/privateLayer.ts +292 -0
  425. package/src/layers/grid3d/vertex.glsl.ts +43 -0
  426. package/src/layers/grid3d/vertex_lines.glsl.ts +15 -0
  427. package/src/layers/grid3d/webworker.ts +173 -0
  428. package/src/layers/hillshading2d/hillshading2d.fs.glsl.ts +62 -0
  429. package/src/layers/hillshading2d/hillshading2dLayer.ts +172 -0
  430. package/src/layers/index.ts +35 -0
  431. package/src/layers/intersection/intersectionView.stories.tsx +294 -0
  432. package/src/layers/intersection/unfoldedGeoJsonLayer.ts +92 -0
  433. package/src/layers/map/fragment.fs.glsl.ts +127 -0
  434. package/src/layers/map/fragment_lines.glsl.ts +21 -0
  435. package/src/layers/map/mapLayer.stories.tsx +1369 -0
  436. package/src/layers/map/mapLayer.ts +470 -0
  437. package/src/layers/map/privateMapLayer.ts +317 -0
  438. package/src/layers/map/vertex.glsl.ts +45 -0
  439. package/src/layers/map/vertex_lines.glsl.ts +15 -0
  440. package/src/layers/map/webworker.ts +479 -0
  441. package/src/layers/northarrow/northArrow.stories.tsx +108 -0
  442. package/src/layers/northarrow/northArrow3DLayer.ts +204 -0
  443. package/src/layers/northarrow/northarrow-fragment.glsl.js +14 -0
  444. package/src/layers/northarrow/northarrow-vertex.glsl.js +13 -0
  445. package/src/layers/piechart/fragment.glsl.js +42 -0
  446. package/src/layers/piechart/pieChartLayer.ts +246 -0
  447. package/src/layers/piechart/vertex.glsl.js +42 -0
  448. package/src/layers/points/pointsLayer.stories.tsx +141 -0
  449. package/src/layers/points/pointsLayer.ts +143 -0
  450. package/src/layers/polylines/polylinesLayer.stories.tsx +144 -0
  451. package/src/layers/polylines/polylinesLayer.ts +263 -0
  452. package/src/layers/selectable_geojson/selectableGeoJsonLayer.ts +25 -0
  453. package/src/layers/shader_modules/decoder.fs.glsl.ts +41 -0
  454. package/src/layers/shader_modules/decoder.ts +46 -0
  455. package/src/layers/shader_modules/index.ts +1 -0
  456. package/src/layers/terrain/map3DLayer.stories.tsx +340 -0
  457. package/src/layers/terrain/map3DLayer.ts +556 -0
  458. package/src/layers/terrain/terrainMapLayer.ts +334 -0
  459. package/src/layers/terrain/terrainmap.fs.glsl.ts +134 -0
  460. package/src/layers/triangle/fragment.fs.glsl.ts +126 -0
  461. package/src/layers/triangle/fragment_lines.glsl.ts +21 -0
  462. package/src/layers/triangle/privateTriangleLayer.ts +203 -0
  463. package/src/layers/triangle/test_data/surfacePoints.ts +4344 -0
  464. package/src/layers/triangle/test_data/surfaceTriangles.ts +7392 -0
  465. package/src/layers/triangle/triangleLayer.stories.tsx +191 -0
  466. package/src/layers/triangle/triangleLayer.ts +273 -0
  467. package/src/layers/triangle/vertex.glsl.ts +35 -0
  468. package/src/layers/triangle/vertex_lines.glsl.ts +15 -0
  469. package/src/layers/triangle/webworker.ts +165 -0
  470. package/src/layers/utils/glsl.d.ts +4 -0
  471. package/src/layers/utils/layerTools.ts +182 -0
  472. package/src/layers/utils/propertyMapTools.ts +43 -0
  473. package/src/layers/wells/utils/spline.ts +318 -0
  474. package/src/layers/wells/wellsLayer.stories.tsx +625 -0
  475. package/src/layers/wells/wellsLayer.ts +1377 -0
  476. package/src/redux/actions.ts +8 -0
  477. package/src/redux/reducer.ts +43 -0
  478. package/src/redux/store.ts +15 -0
  479. package/src/redux/types.ts +114 -0
  480. package/src/storybook/SubsurfaceViewer.stories.jsx +644 -0
  481. package/src/storybook/components/InfoCard.stories.jsx +39 -0
  482. package/src/storybook/components/colorLegends/ContinuousLegend.stories.jsx +32 -0
  483. package/src/storybook/components/colorLegends/DiscreteLegend.stories.jsx +33 -0
  484. package/src/storybook/components/colorLegends/IndividualScaleForMap.stories.jsx +99 -0
  485. package/src/storybook/components/colorLegends/SingleScaleForMap.stories.jsx +120 -0
  486. package/src/storybook/components/settings/LayerSettingsButton.stories.jsx +34 -0
  487. package/src/storybook/components/settings/NumericInput.stories.jsx +17 -0
  488. package/src/storybook/components/settings/ToggleButton.stories.jsx +16 -0
  489. package/src/storybook/schemaValidation/sampleData.js +177 -0
  490. package/src/storybook/schemaValidation/schemaValidation.stories.jsx +91 -0
  491. package/src/test/TestWrapper.tsx +13 -0
  492. package/src/utils/configuration.ts +61 -0
  493. package/src/utils/fit-bounds.js +85 -0
  494. package/src/utils/measurement.ts +61 -0
  495. package/src/utils/northArrow.ts +4 -0
  496. package/src/utils/specExtractor.ts +36 -0
  497. package/src/viewports/index.js +1 -0
  498. package/src/viewports/intersectionViewport.ts +137 -0
  499. package/src/views/index.js +1 -0
  500. package/src/views/intersectionView.ts +38 -0
  501. package/tsconfig.json +7 -0
@@ -0,0 +1,43 @@
1
+ const vsShader = `\
2
+ #version 300 es
3
+ #define SHADER_NAME vertex-shader
4
+
5
+ precision highp float;
6
+
7
+ // Primitive attributes
8
+ in vec3 positions;
9
+ in float properties;
10
+ //in vec3 normals;
11
+ in vec3 colors;
12
+
13
+ in int vertex_indexs;
14
+ flat out int vertex_indexs_;
15
+
16
+
17
+ // Outputs to fragment shader
18
+ out vec2 vTexCoord;
19
+ out vec3 cameraPosition;
20
+ // out vec3 normals_commonspace;
21
+ out vec4 position_commonspace;
22
+ out vec4 vColor;
23
+ out vec3 worldPos;
24
+ out float property;
25
+
26
+
27
+ void main(void) {
28
+ cameraPosition = project_uCameraPosition;
29
+
30
+ worldPos = positions;
31
+
32
+ vertex_indexs_ = vertex_indexs;
33
+
34
+ vColor = vec4(colors.rgb, 1.0);
35
+
36
+ property = properties;
37
+
38
+ position_commonspace = vec4(project_position(positions), 0.0);
39
+ gl_Position = project_common_position_to_clipspace(position_commonspace);
40
+ }
41
+ `;
42
+ export default vsShader;
43
+ //# sourceMappingURL=vertex.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertex.glsl.js","sourceRoot":"","sources":["../../../src/layers/grid3d/vertex.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwChB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: "#version 300 es\n#define SHADER_NAME vertex-lines-shader\n\nprecision highp float;\n\nin vec3 positions;\n\nout vec4 position_commonspace;\n\nvoid main(void) {\n vec3 position_commonspace = project_position(positions);\n gl_Position = project_common_position_to_clipspace(vec4(position_commonspace, 0.0));\n}\n";
2
+ export default _default;
@@ -0,0 +1,16 @@
1
+ export default `\
2
+ #version 300 es
3
+ #define SHADER_NAME vertex-lines-shader
4
+
5
+ precision highp float;
6
+
7
+ in vec3 positions;
8
+
9
+ out vec4 position_commonspace;
10
+
11
+ void main(void) {
12
+ vec3 position_commonspace = project_position(positions);
13
+ gl_Position = project_common_position_to_clipspace(vec4(position_commonspace, 0.0));
14
+ }
15
+ `;
16
+ //# sourceMappingURL=vertex_lines.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertex_lines.glsl.js","sourceRoot":"","sources":["../../../src/layers/grid3d/vertex_lines.glsl.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;CAcd,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { WebWorkerParams } from "./grid3dLayer";
2
+ export declare function makeFullMesh(e: {
3
+ data: WebWorkerParams;
4
+ }): void;
@@ -0,0 +1,140 @@
1
+ export function makeFullMesh(e) {
2
+ // Keep
3
+ const t0 = performance.now();
4
+ const params = e.data;
5
+ const points = params.points;
6
+ const polys = params.polys;
7
+ const properties = params.properties;
8
+ const isZIncreasingDownwards = params.isZIncreasingDownwards;
9
+ const positions = [];
10
+ const indices = [];
11
+ const vertexProperties = [];
12
+ const line_positions = [];
13
+ let propertyValueRangeMin = +99999999;
14
+ let propertyValueRangeMax = -99999999;
15
+ const z_sign = isZIncreasingDownwards ? -1 : 1;
16
+ let pn = 0;
17
+ let indice = 0;
18
+ let i = 0;
19
+ while (i < polys.length) {
20
+ const n = polys[i];
21
+ const propertyValue = properties[pn++];
22
+ if (propertyValue !== null) {
23
+ // For some reason propertyValue happens to be null.
24
+ propertyValueRangeMin =
25
+ propertyValue < propertyValueRangeMin
26
+ ? propertyValue
27
+ : propertyValueRangeMin;
28
+ propertyValueRangeMax =
29
+ propertyValue > propertyValueRangeMax
30
+ ? propertyValue
31
+ : propertyValueRangeMax;
32
+ }
33
+ // Lines.
34
+ for (let j = i + 1; j < i + n; j++) {
35
+ const i1 = polys[j];
36
+ const i2 = polys[j + 1];
37
+ const x0 = points[3 * i1 + 0];
38
+ const y0 = points[3 * i1 + 1];
39
+ const z0 = points[3 * i1 + 2] * z_sign;
40
+ const x1 = points[3 * i2 + 0];
41
+ const y1 = points[3 * i2 + 1];
42
+ const z1 = points[3 * i2 + 2] * z_sign;
43
+ line_positions.push(x0, y0, z0);
44
+ line_positions.push(x1, y1, z1);
45
+ }
46
+ // Triangles.
47
+ if (n == 4) {
48
+ const i1 = polys[i + 1];
49
+ const i2 = polys[i + 2];
50
+ const i3 = polys[i + 3];
51
+ const i4 = polys[i + 4];
52
+ const x1 = points[3 * i1 + 0];
53
+ const y1 = points[3 * i1 + 1];
54
+ const z1 = points[3 * i1 + 2] * z_sign;
55
+ const x2 = points[3 * i2 + 0];
56
+ const y2 = points[3 * i2 + 1];
57
+ const z2 = points[3 * i2 + 2] * z_sign;
58
+ const x3 = points[3 * i3 + 0];
59
+ const y3 = points[3 * i3 + 1];
60
+ const z3 = points[3 * i3 + 2] * z_sign;
61
+ const x4 = points[3 * i4 + 0];
62
+ const y4 = points[3 * i4 + 1];
63
+ const z4 = points[3 * i4 + 2] * z_sign;
64
+ // t1
65
+ indices.push(indice++, indice++, indice++);
66
+ positions.push(x1, y1, z1);
67
+ positions.push(x2, y2, z2);
68
+ positions.push(x3, y3, z3);
69
+ vertexProperties.push(propertyValue);
70
+ vertexProperties.push(propertyValue);
71
+ vertexProperties.push(propertyValue);
72
+ // t2
73
+ indices.push(indice++, indice++, indice++);
74
+ positions.push(x1, y1, z1);
75
+ positions.push(x3, y3, z3);
76
+ positions.push(x4, y4, z4);
77
+ vertexProperties.push(propertyValue);
78
+ vertexProperties.push(propertyValue);
79
+ vertexProperties.push(propertyValue);
80
+ }
81
+ else if (n == 3) {
82
+ // Refactor this n == 3 && n == 4.
83
+ const i1 = polys[i + 1];
84
+ const i2 = polys[i + 2];
85
+ const i3 = polys[i + 3];
86
+ const x1 = points[3 * i1 + 0];
87
+ const y1 = points[3 * i1 + 1];
88
+ const z1 = points[3 * i1 + 2] * z_sign;
89
+ const x2 = points[3 * i2 + 0];
90
+ const y2 = points[3 * i2 + 1];
91
+ const z2 = points[3 * i2 + 2] * z_sign;
92
+ const x3 = points[3 * i3 + 0];
93
+ const y3 = points[3 * i3 + 1];
94
+ const z3 = points[3 * i3 + 2] * z_sign;
95
+ // t1
96
+ indices.push(indice++, indice++, indice++);
97
+ positions.push(x1, y1, z1);
98
+ positions.push(x2, y2, z2);
99
+ positions.push(x3, y3, z3);
100
+ vertexProperties.push(propertyValue);
101
+ vertexProperties.push(propertyValue);
102
+ vertexProperties.push(propertyValue);
103
+ }
104
+ else {
105
+ console.error("Only triangles or four corners are expected.");
106
+ }
107
+ i = i + n + 1;
108
+ }
109
+ console.log("Number of polygons: ", pn);
110
+ const mesh = {
111
+ drawMode: 4,
112
+ attributes: {
113
+ positions: { value: new Float32Array(positions), size: 3 },
114
+ properties: { value: new Float32Array(vertexProperties), size: 1 },
115
+ vertex_indexs: { value: new Int32Array(indices), size: 1 },
116
+ },
117
+ vertexCount: indices.length,
118
+ indices: { value: new Uint32Array(indices), size: 1 },
119
+ };
120
+ const mesh_lines = {
121
+ drawMode: 1,
122
+ attributes: {
123
+ positions: { value: new Float32Array(line_positions), size: 3 },
124
+ },
125
+ vertexCount: line_positions.length / 3,
126
+ };
127
+ const t1 = performance.now();
128
+ //Keep this.
129
+ console.log(`Task makeMesh took ${(t1 - t0) * 0.001} seconds.`);
130
+ // Note: typescript gives this error "error TS2554: Expected 2-3 arguments, but got 1."
131
+ // Disabling this for now as the second argument should be optional.
132
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
133
+ // @ts-ignore
134
+ postMessage([
135
+ mesh,
136
+ mesh_lines,
137
+ [propertyValueRangeMin, propertyValueRangeMax],
138
+ ]);
139
+ }
140
+ //# sourceMappingURL=webworker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webworker.js","sourceRoot":"","sources":["../../../src/layers/grid3d/webworker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const fsHillshading = "#define SHADER_NAME hillshading2d-shader\n\n#ifdef GL_ES\nprecision highp float;\n#endif\n\nvarying vec2 vTexCoord;\n\nuniform sampler2D bitmapTexture; // Property map\nuniform vec2 bitmapResolution;\n\nuniform float valueRangeSize;\n\nuniform vec3 lightDirection;\nuniform float ambientLightIntensity;\nuniform float diffuseLightIntensity;\nuniform float opacity;\n\n// Compute the normal value for every pixel, based on the current value and two values aroud it.\nvec3 normal(float val) {\n vec2 dr = 1.0 / bitmapResolution;\n float p0 = valueRangeSize * val;\n float px = valueRangeSize * decode_rgb2float(texture2D(bitmapTexture, vTexCoord + vec2(1.0, 0.0) / bitmapResolution).rgb);\n float py = valueRangeSize * decode_rgb2float(texture2D(bitmapTexture, vTexCoord + vec2(0.0, 1.0) / bitmapResolution).rgb);\n vec3 dx = vec3(1.0, 0.0, px - p0);\n vec3 dy = vec3(0.0, 1.0, py - p0);\n\n return normalize(cross(dx, dy));\n}\n\n// Compute how much a pixel is in the shadow based on its normal and where the light comes from.\nfloat shadow(vec3 normal) {\n float diffuse = diffuseLightIntensity * dot(normal, normalize(lightDirection));\n return clamp(ambientLightIntensity + diffuse, 0.0, 1.0);\n}\n\nvoid main(void) {\n vec4 bitmapColor = texture2D(bitmapTexture, vTexCoord);\n\n // If it's a picking pass, we just return the raw property map value.\n if (picking_uActive) {\n gl_FragColor = bitmapColor;\n return;\n }\n\n // Decode the RGB value into a float. See decoder.fs.glsl for more details.\n float val = decode_rgb2float(bitmapColor.rgb);\n // Compute the shadow value, how dark a pixel will be, 1 is in complete shadow, 0 is in complete light.\n float shadow = shadow(normal(val));\n\n // The final pixel is black, with the opacity based on the shadow value,\n // opacity 0 if pixel is completely in the light, opacity 1 if pixel is completely in the shadow.\n // The property map opacity (some portions of the property map can be transparent) and\n // the user provided image-wide opacity value are also taken into account.\n gl_FragColor = vec4(vec3(0.0), (1.0-shadow) * bitmapColor.a * opacity);\n\n geometry.uv = vTexCoord;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n}\n";
2
+ export default fsHillshading;
@@ -0,0 +1,62 @@
1
+ const fsHillshading = `#define SHADER_NAME hillshading2d-shader
2
+
3
+ #ifdef GL_ES
4
+ precision highp float;
5
+ #endif
6
+
7
+ varying vec2 vTexCoord;
8
+
9
+ uniform sampler2D bitmapTexture; // Property map
10
+ uniform vec2 bitmapResolution;
11
+
12
+ uniform float valueRangeSize;
13
+
14
+ uniform vec3 lightDirection;
15
+ uniform float ambientLightIntensity;
16
+ uniform float diffuseLightIntensity;
17
+ uniform float opacity;
18
+
19
+ // Compute the normal value for every pixel, based on the current value and two values aroud it.
20
+ vec3 normal(float val) {
21
+ vec2 dr = 1.0 / bitmapResolution;
22
+ float p0 = valueRangeSize * val;
23
+ float px = valueRangeSize * decode_rgb2float(texture2D(bitmapTexture, vTexCoord + vec2(1.0, 0.0) / bitmapResolution).rgb);
24
+ float py = valueRangeSize * decode_rgb2float(texture2D(bitmapTexture, vTexCoord + vec2(0.0, 1.0) / bitmapResolution).rgb);
25
+ vec3 dx = vec3(1.0, 0.0, px - p0);
26
+ vec3 dy = vec3(0.0, 1.0, py - p0);
27
+
28
+ return normalize(cross(dx, dy));
29
+ }
30
+
31
+ // Compute how much a pixel is in the shadow based on its normal and where the light comes from.
32
+ float shadow(vec3 normal) {
33
+ float diffuse = diffuseLightIntensity * dot(normal, normalize(lightDirection));
34
+ return clamp(ambientLightIntensity + diffuse, 0.0, 1.0);
35
+ }
36
+
37
+ void main(void) {
38
+ vec4 bitmapColor = texture2D(bitmapTexture, vTexCoord);
39
+
40
+ // If it's a picking pass, we just return the raw property map value.
41
+ if (picking_uActive) {
42
+ gl_FragColor = bitmapColor;
43
+ return;
44
+ }
45
+
46
+ // Decode the RGB value into a float. See decoder.fs.glsl for more details.
47
+ float val = decode_rgb2float(bitmapColor.rgb);
48
+ // Compute the shadow value, how dark a pixel will be, 1 is in complete shadow, 0 is in complete light.
49
+ float shadow = shadow(normal(val));
50
+
51
+ // The final pixel is black, with the opacity based on the shadow value,
52
+ // opacity 0 if pixel is completely in the light, opacity 1 if pixel is completely in the shadow.
53
+ // The property map opacity (some portions of the property map can be transparent) and
54
+ // the user provided image-wide opacity value are also taken into account.
55
+ gl_FragColor = vec4(vec3(0.0), (1.0-shadow) * bitmapColor.a * opacity);
56
+
57
+ geometry.uv = vTexCoord;
58
+ DECKGL_FILTER_COLOR(gl_FragColor, geometry);
59
+ }
60
+ `;
61
+ export default fsHillshading;
62
+ //# sourceMappingURL=hillshading2d.fs.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hillshading2d.fs.glsl.js","sourceRoot":"","sources":["../../../src/layers/hillshading2d/hillshading2d.fs.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DrB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { BitmapLayer, BitmapLayerProps } from "@deck.gl/layers/typed";
2
+ import { PickingInfo } from "@deck.gl/core/typed";
3
+ import { ValueDecoder } from "../utils/propertyMapTools";
4
+ import { LayerPickInfo } from "../../layers/utils/layerTools";
5
+ export interface Hillshading2DProps extends BitmapLayerProps {
6
+ valueRange: [number, number];
7
+ lightDirection: [number, number, number];
8
+ ambientLightIntensity: number;
9
+ diffuseLightIntensity: number;
10
+ colorMapRange: [number, number];
11
+ valueDecoder: ValueDecoder;
12
+ rotDeg: number;
13
+ setReportedBoundingBox?: any;
14
+ }
15
+ export default class Hillshading2DLayer extends BitmapLayer<Hillshading2DProps> {
16
+ initializeState(): void;
17
+ draw({ moduleParameters, uniforms }: any): void;
18
+ getShaders(): any;
19
+ getPickingInfo({ info }: {
20
+ info: PickingInfo;
21
+ }): LayerPickInfo;
22
+ }
@@ -0,0 +1,101 @@
1
+ import { BitmapLayer } from "@deck.gl/layers/typed";
2
+ import { decoder } from "../shader_modules";
3
+ import { decodeRGB } from "../utils/propertyMapTools";
4
+ import { getModelMatrix } from "../utils/layerTools";
5
+ import fsHillshading from "./hillshading2d.fs.glsl";
6
+ const defaultProps = {
7
+ "@@type": "Hillshading2DLayer",
8
+ name: "Hill shading",
9
+ id: "hillshading-layer",
10
+ opacity: 1.0,
11
+ pickable: true,
12
+ visible: true,
13
+ rotDeg: 0,
14
+ valueRange: { type: "array", value: [0, 1] },
15
+ lightDirection: [1, 1, 1],
16
+ ambientLightIntensity: 0.5,
17
+ diffuseLightIntensity: 0.5,
18
+ valueDecoder: {
19
+ rgbScaler: [1, 1, 1],
20
+ // By default, scale the [0, 256*256*256-1] decoded values to [0, 1]
21
+ floatScaler: 1.0 / (256.0 * 256.0 * 256.0 - 1.0),
22
+ offset: 0,
23
+ step: 0,
24
+ },
25
+ };
26
+ export default class Hillshading2DLayer extends BitmapLayer {
27
+ initializeState() {
28
+ this.setState({
29
+ isLoaded: false,
30
+ });
31
+ super.initializeState();
32
+ }
33
+ // Signature from the base class, eslint doesn't like the any type.
34
+ // eslint-disable-next-line
35
+ draw({ moduleParameters, uniforms }) {
36
+ var _a, _b, _c, _d, _e, _f;
37
+ if (!this.state["isLoaded"]) {
38
+ this.setState({
39
+ isLoaded: true,
40
+ });
41
+ if (typeof this.props.setReportedBoundingBox !== "undefined") {
42
+ const xMin = this.props.bounds[0];
43
+ const yMin = this.props.bounds[1];
44
+ const zMin = 1;
45
+ const xMax = this.props.bounds[2];
46
+ const yMax = this.props.bounds[3];
47
+ const zMax = -1;
48
+ const bbox = [xMin, yMin, zMin, xMax, yMax, zMax];
49
+ this.props.setReportedBoundingBox(bbox);
50
+ }
51
+ }
52
+ if (this.props.image) {
53
+ const mergedModuleParams = Object.assign(Object.assign({}, moduleParameters), { valueDecoder: Object.assign(Object.assign({}, defaultProps.valueDecoder), moduleParameters.valueDecoder), modelMatrix: getModelMatrix(this.props.rotDeg, this.props.bounds[0], // Rotate around upper left corner of bounds
54
+ this.props.bounds[3]) });
55
+ super.setModuleParameters(mergedModuleParams);
56
+ const valueRangeMin = (_a = this.props.valueRange[0]) !== null && _a !== void 0 ? _a : 0.0;
57
+ const valueRangeMax = (_b = this.props.valueRange[1]) !== null && _b !== void 0 ? _b : 1.0;
58
+ const colorMapRangeMin = (_d = (_c = this.props.colorMapRange) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : valueRangeMin;
59
+ const colorMapRangeMax = (_f = (_e = this.props.colorMapRange) === null || _e === void 0 ? void 0 : _e[1]) !== null && _f !== void 0 ? _f : valueRangeMax;
60
+ const [minVal, maxVal] = this.props.valueRange;
61
+ super.draw({
62
+ uniforms: Object.assign(Object.assign({}, uniforms), {
63
+ // Send extra uniforms to the shader.
64
+ bitmapResolution: [
65
+ this.props.image.width,
66
+ this.props.image.height,
67
+ ], valueRangeSize: maxVal - minVal, lightDirection: this.props.lightDirection, ambientLightIntensity: this.props.ambientLightIntensity, diffuseLightIntensity: this.props.diffuseLightIntensity, valueRangeMin,
68
+ valueRangeMax,
69
+ colorMapRangeMin,
70
+ colorMapRangeMax }),
71
+ moduleParameters: mergedModuleParams,
72
+ });
73
+ }
74
+ }
75
+ // Signature from the base class, eslint doesn't like the any type.
76
+ // eslint-disable-next-line
77
+ getShaders() {
78
+ const parentShaders = super.getShaders();
79
+ // Overwrite the BitmapLayer's default fragment shader with ours, that does hillshading.
80
+ parentShaders.fs = fsHillshading;
81
+ // Add the decoder shader module to our colormap shader, so we can use the decoder function from our shader.
82
+ parentShaders.modules.push(decoder);
83
+ return parentShaders;
84
+ }
85
+ getPickingInfo({ info }) {
86
+ if (this.state["pickingDisabled"] || !info.color) {
87
+ return info;
88
+ }
89
+ const mergedDecoder = Object.assign(Object.assign({}, defaultProps.valueDecoder), this.props.valueDecoder);
90
+ // The picked color is the one in raw image, not the one after hillshading.
91
+ // We just need to decode that RGB color into a property float value.
92
+ const val = decodeRGB(info.color, mergedDecoder, this.props.valueRange);
93
+ return Object.assign(Object.assign({}, info), {
94
+ // Picking color doesn't represent object index in this layer.
95
+ // For more details, see https://deck.gl/docs/developer-guide/custom-layers/picking
96
+ index: 0, propertyValue: val });
97
+ }
98
+ }
99
+ Hillshading2DLayer.layerName = "Hillshading2DLayer";
100
+ Hillshading2DLayer.defaultProps = defaultProps;
101
+ //# sourceMappingURL=hillshading2dLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hillshading2dLayer.js","sourceRoot":"","sources":["../../../src/layers/hillshading2d/hillshading2dLayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export { default as ColormapLayer } from "./colormap/colormapLayer";
2
+ export { default as MapLayer } from "./map/mapLayer";
3
+ export { default as TriangleLayer } from "./triangle/triangleLayer";
4
+ export { default as PointsLayer } from "./points/pointsLayer";
5
+ export { default as PolylinesLayer } from "./polylines/polylinesLayer";
6
+ export { default as Map3DLayer } from "./terrain/map3DLayer";
7
+ export { default as DrawingLayer } from "./drawing/drawingLayer";
8
+ export { default as Hillshading2DLayer } from "./hillshading2d/hillshading2dLayer";
9
+ export { default as WellsLayer } from "./wells/wellsLayer";
10
+ export { default as PieChartLayer } from "./piechart/pieChartLayer";
11
+ export { default as FaultPolygonsLayer } from "./fault_polygons/faultPolygonsLayer";
12
+ export { default as AxesLayer } from "./axes/axesLayer";
13
+ export { default as Axes2DLayer } from "./axes2d/axes2DLayer";
14
+ export { default as SelectableGeoJsonLayer } from "./selectable_geojson/selectableGeoJsonLayer";
15
+ export { default as NorthArrow3DLayer } from "./northarrow/northArrow3DLayer";
16
+ export { default as UnfoldedGeoJsonLayer } from "./intersection/unfoldedGeoJsonLayer";
17
+ export { default as Grid3DLayer } from "./grid3d/grid3dLayer";
18
+ export { default as BoxSelectionLayer } from "./BoxSelectionLayer/boxSelectionLayer";
19
+ export { AxesLayerProps } from "./axes/axesLayer";
20
+ export { Axes2DLayerProps } from "./axes2d/axes2DLayer";
21
+ export { ColormapLayerProps } from "./colormap/colormapLayer";
22
+ export { DrawingLayerProps } from "./drawing/drawingLayer";
23
+ export { FaultPolygonsLayerProps } from "./fault_polygons/faultPolygonsLayer";
24
+ export { Hillshading2DProps } from "./hillshading2d/hillshading2dLayer";
25
+ export { MapLayerProps } from "./map/mapLayer";
26
+ export { TriangleLayerProps } from "./triangle/triangleLayer";
27
+ export { PointsLayerProps } from "./points/pointsLayer";
28
+ export { PolylinesLayerProps } from "./polylines/polylinesLayer";
29
+ export { NorthArrow3DLayerProps } from "./northarrow/northArrow3DLayer";
30
+ export { PieChartLayerProps } from "./piechart/pieChartLayer";
31
+ export { Map3DLayerProps } from "./terrain/map3DLayer";
32
+ export { WellsLayerProps } from "./wells/wellsLayer";
33
+ export { Grid3DLayerProps } from "./grid3d/grid3dLayer";
34
+ export { BoxSelectionLayerProps } from "./BoxSelectionLayer/boxSelectionLayer";
@@ -0,0 +1,19 @@
1
+ export { default as ColormapLayer } from "./colormap/colormapLayer";
2
+ export { default as MapLayer } from "./map/mapLayer";
3
+ export { default as TriangleLayer } from "./triangle/triangleLayer";
4
+ export { default as PointsLayer } from "./points/pointsLayer";
5
+ export { default as PolylinesLayer } from "./polylines/polylinesLayer";
6
+ export { default as Map3DLayer } from "./terrain/map3DLayer";
7
+ export { default as DrawingLayer } from "./drawing/drawingLayer";
8
+ export { default as Hillshading2DLayer } from "./hillshading2d/hillshading2dLayer";
9
+ export { default as WellsLayer } from "./wells/wellsLayer";
10
+ export { default as PieChartLayer } from "./piechart/pieChartLayer";
11
+ export { default as FaultPolygonsLayer } from "./fault_polygons/faultPolygonsLayer";
12
+ export { default as AxesLayer } from "./axes/axesLayer";
13
+ export { default as Axes2DLayer } from "./axes2d/axes2DLayer";
14
+ export { default as SelectableGeoJsonLayer } from "./selectable_geojson/selectableGeoJsonLayer";
15
+ export { default as NorthArrow3DLayer } from "./northarrow/northArrow3DLayer";
16
+ export { default as UnfoldedGeoJsonLayer } from "./intersection/unfoldedGeoJsonLayer";
17
+ export { default as Grid3DLayer } from "./grid3d/grid3dLayer";
18
+ export { default as BoxSelectionLayer } from "./BoxSelectionLayer/boxSelectionLayer";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC7D,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,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"}
@@ -0,0 +1,10 @@
1
+ import { Layer, Viewport } from "@deck.gl/core/typed";
2
+ import { GeoJsonLayer } from "@deck.gl/layers/typed";
3
+ import { Feature } from "geojson";
4
+ export default class UnfoldedGeoJsonLayer<D extends Feature = Feature> extends GeoJsonLayer<D> {
5
+ renderLayers(): Layer[];
6
+ filterSubLayer({ layer, viewport, }: {
7
+ layer: Layer;
8
+ viewport: Viewport;
9
+ }): boolean;
10
+ }
@@ -0,0 +1,64 @@
1
+ import { GeoJsonLayer } from "@deck.gl/layers/typed";
2
+ import { isEqual, zip } from "lodash";
3
+ import { distance } from "mathjs";
4
+ import IntersectionViewport from "../../viewports/intersectionViewport";
5
+ const planeY = 2000;
6
+ function computeUnfoldedPath(worldCoordinates) {
7
+ const z = worldCoordinates.map((v) => v[2]);
8
+ const delta = worldCoordinates.map((v, i, coordinates) => {
9
+ const prev = coordinates[i - 1] || v;
10
+ return distance([prev[0], prev[1]], [v[0], v[1]]);
11
+ });
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ const a = [];
14
+ delta.forEach((d) => {
15
+ const prev = a.at(-1) || 0;
16
+ a.push(d + prev);
17
+ });
18
+ const vAbscissa = zip(a, [...a].fill(planeY), z);
19
+ return vAbscissa;
20
+ }
21
+ function computeUnfoldedPolygon(coordinates) {
22
+ const half = Math.floor(coordinates.length / 2);
23
+ const upper_line = coordinates.splice(0, half);
24
+ const lower_line = coordinates.splice(0, half);
25
+ const uul = computeUnfoldedPath(upper_line);
26
+ const ull = computeUnfoldedPath(lower_line.reverse());
27
+ const unfolded_coordinates = uul.concat(ull.reverse());
28
+ unfolded_coordinates.push(uul[0]);
29
+ return unfolded_coordinates;
30
+ }
31
+ function getUnfoldedPath(object) {
32
+ const worldCoordinates = object.geometry
33
+ .coordinates;
34
+ // check if the path is polygon i.e. closed
35
+ const is_closed = isEqual(worldCoordinates[0], worldCoordinates.at(-1));
36
+ if (is_closed) {
37
+ return computeUnfoldedPolygon(worldCoordinates);
38
+ }
39
+ else {
40
+ return computeUnfoldedPath(worldCoordinates);
41
+ }
42
+ }
43
+ export default class UnfoldedGeoJsonLayer extends GeoJsonLayer {
44
+ renderLayers() {
45
+ const layers = super.renderLayers();
46
+ const path_layers = layers
47
+ .flat()
48
+ .filter((layer) => (layer === null || layer === void 0 ? void 0 : layer.constructor.name) === "PathLayer");
49
+ path_layers.forEach((layer) => {
50
+ const unfolded_layer = layer.clone(this.getSubLayerProps(Object.assign(Object.assign({}, layer), { id: layer.id + "-for-intersection-view", getPath: (object) => getUnfoldedPath(object) })));
51
+ if (unfolded_layer)
52
+ layers.push(unfolded_layer);
53
+ });
54
+ return layers;
55
+ }
56
+ filterSubLayer({ layer, viewport, }) {
57
+ if (viewport.constructor === IntersectionViewport) {
58
+ return layer.id.search("-for-intersection-view") != -1;
59
+ }
60
+ return layer.id.search("-for-intersection-view") == -1;
61
+ }
62
+ }
63
+ UnfoldedGeoJsonLayer.layerName = "UnfoldedGeoJsonLayer";
64
+ //# sourceMappingURL=unfoldedGeoJsonLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unfoldedGeoJsonLayer.js","sourceRoot":"","sources":["../../../src/layers/intersection/unfoldedGeoJsonLayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const fsShader = "#version 300 es\n#define SHADER_NAME terrainmap-shader\n\nprecision highp float;\n\n\nuniform bool isContoursDepth;\nuniform float contourReferencePoint;\nuniform float contourInterval;\n\nin vec2 vTexCoord;\nin vec3 cameraPosition;\nin vec3 normals_commonspace;\nin vec4 position_commonspace;\nin vec4 vColor;\n\nflat in int vertex_indexs_;\n\nout vec4 fragColor;\n\nin vec3 worldPos;\nin float property;\n\nuniform sampler2D colormap;\n\nuniform float valueRangeMin;\nuniform float valueRangeMax;\nuniform float colorMapRangeMin;\nuniform float colorMapRangeMax;\n\nuniform vec3 colorMapClampColor;\nuniform bool isClampColor;\nuniform bool isColorMapClampColorTransparent;\nuniform bool smoothShading;\n\n\nvoid main(void) {\n geometry.uv = vTexCoord;\n\n vec3 normal = normals_commonspace;\n\n if (!smoothShading) {\n normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));\n } \n\n // // Discard transparent pixels. KEEP\n // if (!picking_uActive && isnan(propertyValue)) {\n // discard;\n // return;\n // }\n \n //Picking pass.\n if (picking_uActive) {\n // Express triangle index in 255 system.\n float r = 0.0;\n float g = 0.0;\n float b = 0.0;\n \n int idx = vertex_indexs_;\n \n if (idx >= (256 * 256) - 1) {\n r = floor(float(idx) / (256.0 * 256.0));\n idx -= int(r * (256.0 * 256.0));\n }\n \n if (idx >= 256 - 1) {\n g = floor(float(idx) / 256.0);\n idx -= int(g * 256.0);\n }\n \n b = float(idx);\n \n fragColor = vec4(r / 255.0, g / 255.0, b / 255.0, 1.0);\n return;\n }\n\n vec4 color = vec4(1.0, 1.0, 1.0, 1.0);;\n float propertyValue = property;\n\n float x = (propertyValue - colorMapRangeMin) / (colorMapRangeMax - colorMapRangeMin);\n if (x < 0.0 || x > 1.0) {\n // Out of range. Use clampcolor.\n if (isClampColor) {\n color = vec4(colorMapClampColor.rgb, 1.0);\n\n }\n else if (isColorMapClampColorTransparent) {\n discard;\n return;\n }\n else {\n // Use min/max color to clamp.\n x = max(0.0, x);\n x = min(1.0, x);\n\n color = texture2D(colormap, vec2(x, 0.5));\n }\n }\n else {\n color = texture2D(colormap, vec2(x, 0.5));\n }\n\n \n bool is_contours = contourReferencePoint != -1.0 && contourInterval != -1.0;\n if (is_contours) {\n // Contours are made of either depths or properties.\n float val = isContoursDepth ? (abs(worldPos.z) - contourReferencePoint) / contourInterval\n : (propertyValue - contourReferencePoint) / contourInterval;\n\n float f = fract(val);\n float df = fwidth(val);\n\n // keep: float c = smoothstep(df * 1.0, df * 2.0, f); // smootstep from/to no of pixels distance fronm contour line.\n float c = smoothstep(0.0, df * 2.0, f);\n\n color = color * vec4(c, c, c, 1.0);\n }\n\n // Use normal lighting. This has no effect if \"material\" property is not set.\n vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);\n fragColor = vec4(lightColor, 1.0);\n\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
2
+ export default fsShader;