@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,38 @@
1
+ export default `\
2
+ #version 300 es
3
+ #define SHADER_NAME graph-layer-fragment-shader
4
+
5
+ precision highp float;
6
+
7
+ out vec4 fragColor;
8
+
9
+ uniform sampler2D fontTexture;
10
+
11
+ uniform vec4 uAxisColor;
12
+ uniform vec4 uBackGroundColor;
13
+
14
+ in vec2 _vTexCoord;
15
+
16
+ void main(void) {
17
+ vec4 color = texture(fontTexture, _vTexCoord);
18
+
19
+ float x = 1.0 - (color.r + color.g + color.b) / 3.0; // intensity of text color
20
+ x = smoothstep(0.0, 0.2, x);
21
+
22
+ float text_r = uAxisColor.r;
23
+ float text_g = uAxisColor.g;
24
+ float text_b = uAxisColor.b;
25
+
26
+ float bg_r = uBackGroundColor.r;
27
+ float bg_g = uBackGroundColor.g;
28
+ float bg_b = uBackGroundColor.b;
29
+
30
+ float r = x * text_r + (1.0 - x) * bg_r;
31
+ float g = x * text_g + (1.0 - x) * bg_g;
32
+ float b = x * text_b + (1.0 - x) * bg_b;
33
+
34
+ fragColor = vec4(r, g, b, 1.0);
35
+ return;
36
+ }
37
+ `;
38
+ //# sourceMappingURL=label-fragment.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-fragment.glsl.js","sourceRoot":"","sources":["../../../src/layers/axes2d/label-fragment.glsl.js"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCd,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: "#version 300 es\n#define SHADER_NAME graph-layer-axis-vertex-shader\n\nprecision highp float;\n\nin vec3 positions;\n\nin vec2 vTexCoord;\nout vec2 _vTexCoord;\n\nuniform mat4 projectionMatrix;\n\nvoid main(void) {\n _vTexCoord = vTexCoord;\n\n vec3 position_commonspace = positions; // These positions are in view space.\n gl_Position = projectionMatrix * vec4(position_commonspace, 1.0); // From viewspace to clip\n}\n";
2
+ export default _default;
@@ -0,0 +1,21 @@
1
+ export default `\
2
+ #version 300 es
3
+ #define SHADER_NAME graph-layer-axis-vertex-shader
4
+
5
+ precision highp float;
6
+
7
+ in vec3 positions;
8
+
9
+ in vec2 vTexCoord;
10
+ out vec2 _vTexCoord;
11
+
12
+ uniform mat4 projectionMatrix;
13
+
14
+ void main(void) {
15
+ _vTexCoord = vTexCoord;
16
+
17
+ vec3 position_commonspace = positions; // These positions are in view space.
18
+ gl_Position = projectionMatrix * vec4(position_commonspace, 1.0); // From viewspace to clip
19
+ }
20
+ `;
21
+ //# sourceMappingURL=label-vertex.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-vertex.glsl.js","sourceRoot":"","sources":["../../../src/layers/axes2d/label-vertex.glsl.js"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;CAmBd,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: "#version 300 es\n#define SHADER_NAME axes2d-layer-fragment-shader\n\nprecision highp float;\n\nuniform vec4 uColor;\n\nout vec4 fragColor;\n\nvoid main(void) {\n fragColor = uColor;\n}\n";
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ export default `\
2
+ #version 300 es
3
+ #define SHADER_NAME axes2d-layer-fragment-shader
4
+
5
+ precision highp float;
6
+
7
+ uniform vec4 uColor;
8
+
9
+ out vec4 fragColor;
10
+
11
+ void main(void) {
12
+ fragColor = uColor;
13
+ }
14
+ `;
15
+ //# sourceMappingURL=line-fragment.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-fragment.glsl.js","sourceRoot":"","sources":["../../../src/layers/axes2d/line-fragment.glsl.js"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;CAad,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: "#version 300 es\n#define SHADER_NAME axes2d-layer-vertex-shader\n\nprecision highp float;\n\nin vec3 positions;\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,14 @@
1
+ export default `\
2
+ #version 300 es
3
+ #define SHADER_NAME axes2d-layer-vertex-shader
4
+
5
+ precision highp float;
6
+
7
+ in vec3 positions;
8
+
9
+ void main(void) {
10
+ vec3 position_commonspace = project_position(positions);
11
+ gl_Position = project_common_position_to_clipspace(vec4(position_commonspace, 0.0));
12
+ }
13
+ `;
14
+ //# sourceMappingURL=line-vertex.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-vertex.glsl.js","sourceRoot":"","sources":["../../../src/layers/axes2d/line-vertex.glsl.js"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;CAYd,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const fsColormap = "#define SHADER_NAME colormap-shader\n\n#ifdef GL_ES\nprecision highp float;\n#endif\n\nvarying vec2 vTexCoord;\n\nuniform sampler2D bitmapTexture; // Property map\nuniform sampler2D colormap;\n\nuniform float opacity;\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 // The resulting val will be in [0, 1] interval, so we can use it directly as a texture coord\n // to sample from the colormap.\n // 0 => Leftmost color in the colormap, 1 => rightmost color, linearly interpolated in between.\n vec4 color = texture2D(colormap, vec2(val, 0.5));\n\n // The final pixel opacity is the combination of the user provided image-wide opacity,\n // the colormap opacity at the sampled pixel and the property map opacity of the sampled pixel.\n gl_FragColor = vec4(color.rgb, color.a * bitmapColor.a * opacity);\n\n // Support for existing functionality that comes from the BitmapLayer, such as desaturate, tintColor etc.\n // See https://deck.gl/docs/api-reference/layers/bitmap-layer#render-options for more details.\n geometry.uv = vTexCoord;\n DECKGL_FILTER_COLOR(gl_FragColor, geometry);\n\n}\n";
2
+ export default fsColormap;
@@ -0,0 +1,42 @@
1
+ const fsColormap = `#define SHADER_NAME colormap-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 sampler2D colormap;
11
+
12
+ uniform float opacity;
13
+
14
+ void main(void) {
15
+ vec4 bitmapColor = texture2D(bitmapTexture, vTexCoord);
16
+
17
+ // If it's a picking pass, we just return the raw property map value.
18
+ if (picking_uActive) {
19
+ gl_FragColor = bitmapColor;
20
+ return;
21
+ }
22
+
23
+ // Decode the RGB value into a float. See decoder.fs.glsl for more details.
24
+ float val = decode_rgb2float(bitmapColor.rgb);
25
+ // The resulting val will be in [0, 1] interval, so we can use it directly as a texture coord
26
+ // to sample from the colormap.
27
+ // 0 => Leftmost color in the colormap, 1 => rightmost color, linearly interpolated in between.
28
+ vec4 color = texture2D(colormap, vec2(val, 0.5));
29
+
30
+ // The final pixel opacity is the combination of the user provided image-wide opacity,
31
+ // the colormap opacity at the sampled pixel and the property map opacity of the sampled pixel.
32
+ gl_FragColor = vec4(color.rgb, color.a * bitmapColor.a * opacity);
33
+
34
+ // Support for existing functionality that comes from the BitmapLayer, such as desaturate, tintColor etc.
35
+ // See https://deck.gl/docs/api-reference/layers/bitmap-layer#render-options for more details.
36
+ geometry.uv = vTexCoord;
37
+ DECKGL_FILTER_COLOR(gl_FragColor, geometry);
38
+
39
+ }
40
+ `;
41
+ export default fsColormap;
42
+ //# sourceMappingURL=colormap.fs.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colormap.fs.glsl.js","sourceRoot":"","sources":["../../../src/layers/colormap/colormap.fs.glsl.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuClB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { BitmapLayer, BitmapLayerProps } from "@deck.gl/layers/typed";
2
+ import { PickingInfo } from "@deck.gl/core/typed";
3
+ import { LayerPickInfo } from "../../layers/utils/layerTools";
4
+ import { ValueDecoder } from "../utils/propertyMapTools";
5
+ import { colorMapFunctionType } from "../utils/layerTools";
6
+ import { ContinuousLegendDataType } from "../../components/ColorLegend";
7
+ export interface ColormapLayerProps extends BitmapLayerProps {
8
+ colorMapName: string;
9
+ colorMapFunction?: colorMapFunctionType;
10
+ valueRange: [number, number];
11
+ colorMapRange: [number, number];
12
+ valueDecoder: ValueDecoder;
13
+ rotDeg: number;
14
+ setReportedBoundingBox?: any;
15
+ }
16
+ export default class ColormapLayer extends BitmapLayer<ColormapLayerProps> {
17
+ initializeState(): void;
18
+ draw({ moduleParameters, uniforms, context }: any): void;
19
+ getShaders(): any;
20
+ getPickingInfo({ info }: {
21
+ info: PickingInfo;
22
+ }): LayerPickInfo;
23
+ getLegendData(): ContinuousLegendDataType;
24
+ }
@@ -0,0 +1,150 @@
1
+ import { BitmapLayer } from "@deck.gl/layers/typed";
2
+ import GL from "@luma.gl/constants";
3
+ import { Texture2D } from "@luma.gl/webgl";
4
+ import { decoder } from "../shader_modules";
5
+ import { decodeRGB } from "../utils/propertyMapTools";
6
+ import { getModelMatrix } from "../utils/layerTools";
7
+ import fsColormap from "./colormap.fs.glsl";
8
+ import { getRgbData } from "@emerson-eps/color-tables";
9
+ const DEFAULT_TEXTURE_PARAMETERS = {
10
+ [GL.TEXTURE_MIN_FILTER]: GL.LINEAR_MIPMAP_LINEAR,
11
+ [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,
12
+ [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,
13
+ [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE,
14
+ };
15
+ function getImageData(colorMapName, colorTables, colorMapFunction) {
16
+ const isColorMapFunctionDefined = typeof colorMapFunction !== "undefined";
17
+ const data = new Uint8Array(256 * 3);
18
+ for (let i = 0; i < 256; i++) {
19
+ const value = i / 255.0;
20
+ const rgb = isColorMapFunctionDefined
21
+ ? colorMapFunction(i / 255)
22
+ : getRgbData(value, colorMapName, colorTables);
23
+ let color = [];
24
+ if (rgb != undefined) {
25
+ if (Array.isArray(rgb)) {
26
+ color = rgb;
27
+ }
28
+ else {
29
+ color = [rgb.r, rgb.g, rgb.b];
30
+ }
31
+ }
32
+ data[3 * i + 0] = color[0];
33
+ data[3 * i + 1] = color[1];
34
+ data[3 * i + 2] = color[2];
35
+ }
36
+ return data;
37
+ }
38
+ const defaultProps = {
39
+ "@@type": "ColormapLayer",
40
+ name: "Property map",
41
+ id: "colormap-layer",
42
+ pickable: true,
43
+ visible: true,
44
+ valueRange: { type: "array", value: [0, 1] },
45
+ colorMapRange: { type: "array" },
46
+ valueDecoder: {
47
+ rgbScaler: [1, 1, 1],
48
+ // By default, scale the [0, 256*256*256-1] decoded values to [0, 1]
49
+ floatScaler: 1.0 / (256.0 * 256.0 * 256.0 - 1.0),
50
+ offset: 0,
51
+ step: 0,
52
+ },
53
+ rotDeg: 0,
54
+ colorMapName: "Rainbow",
55
+ };
56
+ export default class ColormapLayer extends BitmapLayer {
57
+ initializeState() {
58
+ this.setState({
59
+ isLoaded: false,
60
+ });
61
+ super.initializeState();
62
+ }
63
+ // Signature from the base class, eslint doesn't like the any type.
64
+ // eslint-disable-next-line
65
+ draw({ moduleParameters, uniforms, context }) {
66
+ var _a, _b, _c, _d, _e, _f;
67
+ if (!this.state["isLoaded"]) {
68
+ this.setState({
69
+ isLoaded: true,
70
+ });
71
+ if (typeof this.props.setReportedBoundingBox !== "undefined") {
72
+ const xMin = this.props.bounds[0];
73
+ const yMin = this.props.bounds[1];
74
+ const zMin = 1;
75
+ const xMax = this.props.bounds[2];
76
+ const yMax = this.props.bounds[3];
77
+ const zMax = -1;
78
+ const bbox = [xMin, yMin, zMin, xMax, yMax, zMax];
79
+ this.props.setReportedBoundingBox(bbox);
80
+ }
81
+ }
82
+ 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
83
+ this.props.bounds[3]) });
84
+ super.setModuleParameters(mergedModuleParams);
85
+ const valueRangeMin = (_a = this.props.valueRange[0]) !== null && _a !== void 0 ? _a : 0.0;
86
+ const valueRangeMax = (_b = this.props.valueRange[1]) !== null && _b !== void 0 ? _b : 1.0;
87
+ // If specified color map will extend from colorMapRangeMin to colorMapRangeMax.
88
+ // Otherwise it will extend from valueRangeMin to valueRangeMax.
89
+ const colorMapRangeMin = (_d = (_c = this.props.colorMapRange) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : valueRangeMin;
90
+ const colorMapRangeMax = (_f = (_e = this.props.colorMapRange) === null || _e === void 0 ? void 0 : _e[1]) !== null && _f !== void 0 ? _f : valueRangeMax;
91
+ super.draw({
92
+ uniforms: Object.assign(Object.assign({}, uniforms), {
93
+ // Send the colormap texture to the shader.
94
+ colormap: new Texture2D(context.gl, {
95
+ width: 256,
96
+ height: 1,
97
+ format: GL.RGB,
98
+ data: getImageData(this.props.colorMapName, this.context.userData
99
+ .colorTables, this.props.colorMapFunction),
100
+ parameters: DEFAULT_TEXTURE_PARAMETERS,
101
+ }), valueRangeMin,
102
+ valueRangeMax,
103
+ colorMapRangeMin,
104
+ colorMapRangeMax }),
105
+ moduleParameters: mergedModuleParams,
106
+ });
107
+ }
108
+ // Signature from the base class, eslint doesn't like the any type.
109
+ // eslint-disable-next-line
110
+ getShaders() {
111
+ const parentShaders = super.getShaders();
112
+ // Overwrite the BitmapLayer's default fragment shader with ours, that does colormapping.
113
+ parentShaders.fs = fsColormap;
114
+ // Add the decoder shader module to our colormap shader, so we can use the decoder function from our shader.
115
+ parentShaders.modules.push(decoder);
116
+ return parentShaders;
117
+ }
118
+ getPickingInfo({ info }) {
119
+ if (this.state["pickingDisabled"] || !info.color) {
120
+ return info;
121
+ }
122
+ const mergedDecoder = Object.assign(Object.assign({}, defaultProps.valueDecoder), this.props.valueDecoder);
123
+ // The picked color is the one in raw image, not the one after colormapping.
124
+ // We just need to decode that RGB color into a property float value.
125
+ const val = decodeRGB(info.color, mergedDecoder, this.props.valueRange);
126
+ return Object.assign(Object.assign({}, info), {
127
+ // Picking color doesn't represent object index in this layer.
128
+ // For more details, see https://deck.gl/docs/developer-guide/custom-layers/picking
129
+ index: 0, propertyValue: val });
130
+ }
131
+ getLegendData() {
132
+ var _a, _b, _c, _d, _e, _f;
133
+ const valueRangeMin = (_a = this.props.valueRange[0]) !== null && _a !== void 0 ? _a : 0.0;
134
+ const valueRangeMax = (_b = this.props.valueRange[1]) !== null && _b !== void 0 ? _b : 1.0;
135
+ // If specified color map will extend from colorMapRangeMin to colorMapRangeMax.
136
+ // Otherwise it will extend from valueRangeMin to valueRangeMax.
137
+ const min = (_d = (_c = this.props.colorMapRange) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : valueRangeMin;
138
+ const max = (_f = (_e = this.props.colorMapRange) === null || _e === void 0 ? void 0 : _e[1]) !== null && _f !== void 0 ? _f : valueRangeMax;
139
+ return {
140
+ discrete: false,
141
+ valueRange: [min, max],
142
+ colorName: this.props.colorMapName,
143
+ title: "PropertyMapLayer",
144
+ colorMapFunction: this.props.colorMapFunction,
145
+ };
146
+ }
147
+ }
148
+ ColormapLayer.layerName = "ColormapLayer";
149
+ ColormapLayer.defaultProps = defaultProps;
150
+ //# sourceMappingURL=colormapLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colormapLayer.js","sourceRoot":"","sources":["../../../src/layers/colormap/colormapLayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Color, CompositeLayer, PickingInfo, LayerContext, LayersList } from "@deck.gl/core/typed";
2
+ import { ExtendedLayerProps, LayerPickInfo } from "../utils/layerTools";
3
+ import { EditAction, Feature, FeatureCollection } from "@nebula.gl/edit-modes";
4
+ export interface DrawingLayerProps<D> extends ExtendedLayerProps<D> {
5
+ mode: string;
6
+ selectedFeatureIndexes: number[];
7
+ }
8
+ export default class DrawingLayer extends CompositeLayer<DrawingLayerProps<FeatureCollection>> {
9
+ initializeState(context: LayerContext): void;
10
+ onClick(info: PickingInfo): boolean;
11
+ getPickingInfo({ info }: {
12
+ info: PickingInfo;
13
+ }): LayerPickInfo;
14
+ _onEdit(editAction: EditAction<FeatureCollection>): void;
15
+ _getLineColor(feature: Feature): Color;
16
+ renderLayers(): LayersList;
17
+ }
@@ -0,0 +1,202 @@
1
+ import { COORDINATE_SYSTEM, CompositeLayer, } from "@deck.gl/core/typed";
2
+ import { DrawLineStringMode, DrawPointMode, DrawPolygonMode, ImmutableFeatureCollection, ModifyMode, TransformMode, ViewMode, } from "@nebula.gl/edit-modes";
3
+ import { EditableGeoJsonLayer } from "@nebula.gl/layers";
4
+ import { area, length } from "../../utils/measurement";
5
+ // Custom drawing mode that deletes the selected GeoJson feature when releasing the Delete key.
6
+ class CustomModifyMode extends ModifyMode {
7
+ handleKeyUp(event, props) {
8
+ super.handleKeyUp(event, props);
9
+ if (event.key === "Delete") {
10
+ const updatedData = new ImmutableFeatureCollection(props.data)
11
+ .deleteFeatures(props.selectedIndexes)
12
+ .getObject();
13
+ if (updatedData) {
14
+ props.onEdit({
15
+ updatedData,
16
+ editType: "removeFeature",
17
+ editContext: {
18
+ featureIndexes: props.selectedIndexes,
19
+ },
20
+ });
21
+ }
22
+ }
23
+ }
24
+ }
25
+ function deleteEscapeKeyHandler(drawMode, event, props) {
26
+ if (event.key === "Escape")
27
+ drawMode.getClickSequence().pop();
28
+ else if (event.key === "Delete")
29
+ drawMode.resetClickSequence();
30
+ else
31
+ return;
32
+ // used to set state so layer can be rerendered
33
+ const updatedData = new ImmutableFeatureCollection(props.data).getObject();
34
+ if (updatedData) {
35
+ props.onEdit({
36
+ updatedData,
37
+ editType: "undoDrawing",
38
+ editContext: {
39
+ featureIndexes: props.selectedIndexes,
40
+ },
41
+ });
42
+ }
43
+ }
44
+ class CustomDrawLineStringMode extends DrawLineStringMode {
45
+ handleKeyUp(event, props) {
46
+ super.handleKeyUp(event, props);
47
+ deleteEscapeKeyHandler(this, event, props);
48
+ }
49
+ }
50
+ class CustomDrawPolygonMode extends DrawPolygonMode {
51
+ handleKeyUp(event, props) {
52
+ super.handleKeyUp(event, props);
53
+ deleteEscapeKeyHandler(this, event, props);
54
+ }
55
+ }
56
+ // Mapping of mode name to mode class
57
+ const MODE_MAP = {
58
+ view: ViewMode,
59
+ modify: CustomModifyMode,
60
+ transform: TransformMode,
61
+ drawPoint: DrawPointMode,
62
+ drawLineString: CustomDrawLineStringMode,
63
+ drawPolygon: CustomDrawPolygonMode,
64
+ };
65
+ const UNSELECTED_LINE_COLOR = [0x50, 0x50, 0x50, 0xcc];
66
+ const SELECTED_LINE_COLOR = [0x0, 0x0, 0x0, 0xff];
67
+ const defaultProps = {
68
+ "@@type": "DrawingLayer",
69
+ name: "Drawing",
70
+ id: "drawing-layer",
71
+ pickable: true,
72
+ visible: true,
73
+ mode: "drawLineString",
74
+ // Props used to get/set data in the drawing layer.
75
+ selectedFeatureIndexes: [],
76
+ data: {
77
+ type: "FeatureCollection",
78
+ features: [],
79
+ },
80
+ };
81
+ // Composite layer that contains an EditableGeoJsonLayer from nebula.gl
82
+ // See https://nebula.gl/docs/api-reference/layers/editable-geojson-layer
83
+ export default class DrawingLayer extends CompositeLayer {
84
+ initializeState(context) {
85
+ super.initializeState(context);
86
+ this.setState({
87
+ data: this.props.data,
88
+ selectedFeatureIndexes: this.props.selectedFeatureIndexes,
89
+ });
90
+ }
91
+ // Select features when clicking on them if in view or modify modes.
92
+ // The selection is used to set current selected drawing, and
93
+ // is sent to the map component parent via setEditedData.
94
+ onClick(info) {
95
+ if (this.props.mode === "view" || this.props.mode === "modify") {
96
+ this.setState({
97
+ selectedFeatureIndexes: [info.index],
98
+ });
99
+ this.context.userData.setEditedData({
100
+ selectedFeatureIndexes: [info.index],
101
+ });
102
+ return true;
103
+ }
104
+ return false;
105
+ }
106
+ // For now, use `any` for the picking types because this function should
107
+ // recieve PickInfo<FeatureCollection>, but it recieves PickInfo<Feature>.
108
+ getPickingInfo({ info }) {
109
+ if (!info.object)
110
+ return info;
111
+ const feature = info.object;
112
+ let measurement;
113
+ if (feature.geometry.type === "LineString") {
114
+ measurement = length(feature);
115
+ }
116
+ else if (feature.geometry.type === "Polygon") {
117
+ measurement = area(feature);
118
+ }
119
+ else
120
+ return info;
121
+ return Object.assign(Object.assign({}, info), { propertyValue: measurement });
122
+ }
123
+ // Callback for various editing events. Most events will update this component
124
+ // through patches sent to the map parent. See patchLayerPropsin layerTools.ts.
125
+ _onEdit(editAction) {
126
+ switch (editAction.editType) {
127
+ case "addFeature":
128
+ this.setState({
129
+ data: editAction.updatedData,
130
+ selectedFeatureIndexes: editAction.editContext.featureIndexes,
131
+ });
132
+ this.context.userData.setEditedData({
133
+ data: editAction.updatedData,
134
+ selectedFeatureIndexes: editAction.editContext.featureIndexes,
135
+ });
136
+ break;
137
+ case "removeFeature":
138
+ this.setState({
139
+ data: editAction.updatedData,
140
+ selectedFeatureIndexes: [],
141
+ });
142
+ this.context.userData.setEditedData({
143
+ data: editAction.updatedData,
144
+ selectedFeatureIndexes: [],
145
+ });
146
+ break;
147
+ case "removePosition":
148
+ case "finishMovePosition":
149
+ this.setState({
150
+ data: editAction.updatedData,
151
+ });
152
+ this.context.userData.setEditedData({
153
+ data: editAction.updatedData,
154
+ });
155
+ break;
156
+ case "movePosition":
157
+ case "undoDrawing":
158
+ // Don't use setEditedData to avoid an expensive roundtrip,
159
+ // since this is done on every mouse move when editing.
160
+ this.setState({ data: editAction.updatedData });
161
+ break;
162
+ }
163
+ }
164
+ // Return the line color based on the selection status.
165
+ // The same can be done for other features (polygons, points etc).
166
+ _getLineColor(feature) {
167
+ const is_feature_selected = this.state["selectedFeatureIndexes"].some((i) => this.state["data"].features[i] === feature);
168
+ if (is_feature_selected) {
169
+ return SELECTED_LINE_COLOR;
170
+ }
171
+ else {
172
+ return UNSELECTED_LINE_COLOR;
173
+ }
174
+ }
175
+ renderLayers() {
176
+ if (this.props.visible == false) {
177
+ return [];
178
+ }
179
+ const sub_layer_props = this.getSubLayerProps({
180
+ data: this.state["data"],
181
+ mode: MODE_MAP[this.props.mode],
182
+ modeConfig: {
183
+ viewport: this.context.viewport,
184
+ },
185
+ selectedFeatureIndexes: this.state["selectedFeatureIndexes"],
186
+ coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
187
+ onEdit: (editAction) => this._onEdit(editAction),
188
+ _subLayerProps: {
189
+ geojson: {
190
+ autoHighlight: true,
191
+ getLineColor: (feature) => this._getLineColor(feature),
192
+ },
193
+ },
194
+ });
195
+ // @ts-expect-error: EditableGeoJsonLayer from nebula.gl has no typing
196
+ return [new EditableGeoJsonLayer(sub_layer_props)];
197
+ }
198
+ }
199
+ DrawingLayer.layerName = "DrawingLayer";
200
+ DrawingLayer.defaultProps =
201
+ defaultProps;
202
+ //# sourceMappingURL=drawingLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawingLayer.js","sourceRoot":"","sources":["../../../src/layers/drawing/drawingLayer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { CompositeLayer } from "@deck.gl/core/typed";
2
+ import { GeoJsonLayer, GeoJsonLayerProps } from "@deck.gl/layers/typed";
3
+ import { Feature } from "geojson";
4
+ export interface FaultPolygonsLayerProps extends GeoJsonLayerProps {
5
+ depthTest: boolean;
6
+ }
7
+ export default class FaultPolygonsLayer extends CompositeLayer<FaultPolygonsLayerProps> {
8
+ renderLayers(): GeoJsonLayer<Feature>[];
9
+ }
@@ -0,0 +1,43 @@
1
+ import { COORDINATE_SYSTEM, CompositeLayer } from "@deck.gl/core/typed";
2
+ import { GeoJsonLayer } from "@deck.gl/layers/typed";
3
+ import GL from "@luma.gl/constants";
4
+ const getColor = (d) => {
5
+ var _a, _b, _c, _d;
6
+ const c = (_a = d === null || d === void 0 ? void 0 : d.properties) === null || _a === void 0 ? void 0 : _a["color"];
7
+ const r = (_b = c[0]) !== null && _b !== void 0 ? _b : 0;
8
+ const g = (_c = c[1]) !== null && _c !== void 0 ? _c : 0;
9
+ const b = (_d = c[2]) !== null && _d !== void 0 ? _d : 0;
10
+ return [r, g, b, 30]; // make fill color transparent
11
+ };
12
+ const defaultProps = {
13
+ "@@type": "FaultPolygonsLayer",
14
+ name: "Fault polygons",
15
+ id: "fault-polygons-layer",
16
+ pickable: true,
17
+ visible: true,
18
+ filled: true,
19
+ lineWidthMinPixels: 2,
20
+ depthTest: true,
21
+ };
22
+ export default class FaultPolygonsLayer extends CompositeLayer {
23
+ renderLayers() {
24
+ const layer = new GeoJsonLayer(this.getSubLayerProps({
25
+ id: this.props.id,
26
+ data: this.props.data,
27
+ pickable: this.props.pickable,
28
+ visible: this.props.visible,
29
+ filled: this.props.filled,
30
+ lineWidthMinPixels: this.props.lineWidthMinPixels,
31
+ coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
32
+ getLineColor: (d) => { var _a, _b; return (_b = (_a = d === null || d === void 0 ? void 0 : d.properties) === null || _a === void 0 ? void 0 : _a["color"]) !== null && _b !== void 0 ? _b : [0, 0, 0, 255]; },
33
+ getFillColor: getColor,
34
+ parameters: {
35
+ [GL.DEPTH_TEST]: this.props.depthTest,
36
+ },
37
+ }));
38
+ return [layer];
39
+ }
40
+ }
41
+ FaultPolygonsLayer.layerName = "FaultPolygonsLayer";
42
+ FaultPolygonsLayer.defaultProps = defaultProps;
43
+ //# sourceMappingURL=faultPolygonsLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faultPolygonsLayer.js","sourceRoot":"","sources":["../../../src/layers/fault_polygons/faultPolygonsLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAS,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAqB,MAAM,uBAAuB,CAAC;AAExE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAS,EAAE;;IACnC,MAAM,CAAC,GAAU,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,UAAU,0CAAG,OAAO,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,MAAA,CAAC,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC;IACpB,MAAM,CAAC,GAAG,MAAA,CAAC,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC;IACpB,MAAM,CAAC,GAAG,MAAA,CAAC,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC;IACpB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,8BAA8B;AACxD,CAAC,CAAC;AAOF,MAAM,YAAY,GAAG;IACjB,QAAQ,EAAE,oBAAoB;IAC9B,IAAI,EAAE,gBAAgB;IACtB,EAAE,EAAE,sBAAsB;IAC1B,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,kBAAkB,EAAE,CAAC;IACrB,SAAS,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,cAAuC;IACnF,YAAY;QACR,MAAM,KAAK,GAAG,IAAI,YAAY,CAC1B,IAAI,CAAC,gBAAgB,CAAC;YAClB,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB;YACjD,gBAAgB,EAAE,iBAAiB,CAAC,SAAS;YAC7C,YAAY,EAAE,CAAC,CAAU,EAAE,EAAE,eACzB,OAAA,MAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,UAAU,0CAAG,OAAO,CAAC,mCAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA,EAAA;YAC9C,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE;gBACR,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;aACxC;SACJ,CAAC,CACL,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;CACJ;AAED,kBAAkB,CAAC,SAAS,GAAG,oBAAoB,CAAC;AACpD,kBAAkB,CAAC,YAAY,GAAG,YAAY,CAAC"}