@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,292 @@
1
+ import {
2
+ COORDINATE_SYSTEM,
3
+ Layer,
4
+ picking,
5
+ project,
6
+ phongLighting,
7
+ PickingInfo,
8
+ UpdateParameters,
9
+ Color,
10
+ } from "@deck.gl/core/typed";
11
+ import {
12
+ createPropertyData,
13
+ LayerPickInfo,
14
+ PropertyDataType,
15
+ } from "../utils/layerTools";
16
+ import { Model, Geometry } from "@luma.gl/engine";
17
+ import { DeckGLLayerContext } from "../../components/Map";
18
+ import { ExtendedLayerProps, colorMapFunctionType } from "../utils/layerTools";
19
+ import vsShader from "./vertex.glsl";
20
+ import fsShader from "./fragment.fs.glsl";
21
+ import vsLineShader from "./vertex_lines.glsl";
22
+ import fsLineShader from "./fragment_lines.glsl";
23
+
24
+ import { colorTablesArray, rgbValues } from "@emerson-eps/color-tables/";
25
+ import { createDefaultContinuousColorScale } from "@emerson-eps/color-tables/dist/component/Utils/legendCommonFunction";
26
+ import { Texture2D } from "@luma.gl/webgl";
27
+ import GL from "@luma.gl/constants";
28
+
29
+ const DEFAULT_TEXTURE_PARAMETERS = {
30
+ [GL.TEXTURE_MIN_FILTER]: GL.LINEAR_MIPMAP_LINEAR,
31
+ [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,
32
+ [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,
33
+ [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE,
34
+ };
35
+
36
+ export type MeshType = {
37
+ drawMode?: number;
38
+ attributes: {
39
+ positions: { value: Float32Array; size: number };
40
+ TEXCOORD_0?: { value: Float32Array; size: number };
41
+ normals?: { value: Float32Array; size: number };
42
+ properties: { value: Float32Array; size: number };
43
+ vertex_indexs: { value: Int32Array; size: number };
44
+ };
45
+ vertexCount: number;
46
+ indices: { value: Uint32Array; size: number };
47
+ };
48
+
49
+ export type MeshTypeLines = {
50
+ drawMode: number;
51
+ attributes: {
52
+ positions: { value: Float32Array; size: number };
53
+ };
54
+ vertexCount: number;
55
+ };
56
+
57
+ export type Material =
58
+ | {
59
+ ambient: number;
60
+ diffuse: number;
61
+ shininess: number;
62
+ specularColor: [number, number, number];
63
+ }
64
+ | boolean;
65
+
66
+ function getImageData(
67
+ colorMapName: string,
68
+ colorTables: colorTablesArray,
69
+ colorMapFunction: colorMapFunctionType | false | undefined
70
+ ) {
71
+ const isColorMapFunctionDefined = typeof colorMapFunction === "function";
72
+ const isColorMapNameDefined = !!colorMapName;
73
+
74
+ const data = new Uint8Array(256 * 3);
75
+
76
+ const defaultColorMap = createDefaultContinuousColorScale;
77
+
78
+ const colorMap = isColorMapFunctionDefined
79
+ ? colorMapFunction
80
+ : isColorMapNameDefined
81
+ ? (value: number) => rgbValues(value, colorMapName, colorTables)
82
+ : defaultColorMap();
83
+
84
+ for (let i = 0; i < 256; i++) {
85
+ const value = i / 255.0;
86
+ const color = colorMap ? colorMap(value) : [0, 0, 0];
87
+ if (color) {
88
+ data[3 * i + 0] = color[0];
89
+ data[3 * i + 1] = color[1];
90
+ data[3 * i + 2] = color[2];
91
+ }
92
+ }
93
+
94
+ return data ? data : [0, 0, 0];
95
+ }
96
+
97
+ export interface privateLayerProps<D> extends ExtendedLayerProps<D> {
98
+ mesh: MeshType;
99
+ meshLines: MeshTypeLines;
100
+ colorMapName: string;
101
+ colorMapRange: [number, number];
102
+ colorMapClampColor: Color | undefined | boolean;
103
+ colorMapFunction?: colorMapFunctionType | false;
104
+ propertyValueRange: [number, number];
105
+ depthTest: boolean;
106
+ }
107
+
108
+ const defaultProps = {
109
+ colorMapName: "",
110
+ coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
111
+ propertyValueRange: [0.0, 1.0],
112
+ depthTest: true,
113
+ };
114
+
115
+ // This is a private layer used only by the composite Map3DLayer
116
+ export default class privateLayer extends Layer<privateLayerProps<unknown>> {
117
+ initializeState(context: DeckGLLayerContext): void {
118
+ const { gl } = context;
119
+ const [model_mesh, mesh_lines_model] = this._getModels(gl);
120
+ this.setState({ models: [model_mesh, mesh_lines_model] });
121
+ }
122
+
123
+ shouldUpdateState({
124
+ props,
125
+ oldProps,
126
+ context,
127
+ changeFlags,
128
+ }: UpdateParameters<this>): boolean {
129
+ return (
130
+ super.shouldUpdateState({
131
+ props,
132
+ oldProps,
133
+ context,
134
+ changeFlags,
135
+ }) || changeFlags.propsOrDataChanged
136
+ );
137
+ }
138
+
139
+ updateState({ context }: UpdateParameters<this>): void {
140
+ this.initializeState(context as DeckGLLayerContext);
141
+ }
142
+
143
+ //eslint-disable-next-line
144
+ _getModels(gl: any) {
145
+ // MESH MODEL
146
+ const mesh_model = new Model(gl, {
147
+ id: `${this.props.id}-mesh`,
148
+ vs: vsShader,
149
+ fs: fsShader,
150
+ geometry: new Geometry({
151
+ drawMode: this.props.mesh.drawMode,
152
+ attributes: {
153
+ positions: this.props.mesh.attributes.positions,
154
+ properties: this.props.mesh.attributes.properties,
155
+ vertex_indexs: this.props.mesh.attributes.vertex_indexs,
156
+ },
157
+ vertexCount: this.props.mesh.vertexCount,
158
+ indices: this.props.mesh.indices,
159
+ }),
160
+ modules: [project, picking, phongLighting],
161
+ isInstanced: false, // This only works when set to false.
162
+ });
163
+
164
+ // MESH LINES
165
+ const mesh_lines_model = new Model(gl, {
166
+ id: `${this.props.id}-lines`,
167
+ vs: vsLineShader,
168
+ fs: fsLineShader,
169
+ geometry: new Geometry(this.props.meshLines),
170
+ modules: [project, picking],
171
+ isInstanced: false,
172
+ });
173
+
174
+ return [mesh_model, mesh_lines_model];
175
+ }
176
+
177
+ // Signature from the base class, eslint doesn't like the any type.
178
+ // eslint-disable-next-line
179
+ draw(args: any): void {
180
+ if (!this.state["models"]) {
181
+ return;
182
+ }
183
+
184
+ const { uniforms, context } = args;
185
+ const { gl } = context;
186
+
187
+ const [model_mesh, mesh_lines_model] = this.state["models"];
188
+
189
+ const valueRangeMin = this.props.propertyValueRange?.[0] ?? 0.0;
190
+ const valueRangeMax = this.props.propertyValueRange?.[1] ?? 1.0;
191
+
192
+ // If specified color map will extend from colorMapRangeMin to colorMapRangeMax.
193
+ // Otherwise it will extend from valueRangeMin to valueRangeMax.
194
+ const colorMapRangeMin = this.props.colorMapRange?.[0] ?? valueRangeMin;
195
+ const colorMapRangeMax = this.props.colorMapRange?.[1] ?? valueRangeMax;
196
+
197
+ const isClampColor: boolean =
198
+ this.props.colorMapClampColor !== undefined &&
199
+ this.props.colorMapClampColor !== true &&
200
+ this.props.colorMapClampColor !== false;
201
+ let colorMapClampColor = isClampColor
202
+ ? this.props.colorMapClampColor
203
+ : [0, 0, 0];
204
+
205
+ // Normalize to [0,1] range.
206
+ colorMapClampColor = (colorMapClampColor as Color).map(
207
+ (x) => (x ?? 0) / 255
208
+ );
209
+
210
+ const isColorMapClampColorTransparent: boolean =
211
+ (this.props.colorMapClampColor as boolean) === false;
212
+
213
+ gl.enable(gl.POLYGON_OFFSET_FILL);
214
+ gl.polygonOffset(1, 1);
215
+
216
+ if (!this.props.depthTest) {
217
+ gl.disable(gl.DEPTH_TEST);
218
+ }
219
+
220
+ model_mesh
221
+ .setUniforms({
222
+ ...uniforms,
223
+ colormap: new Texture2D(context.gl, {
224
+ width: 256,
225
+ height: 1,
226
+ format: GL.RGB,
227
+ data: getImageData(
228
+ this.props.colorMapName,
229
+ (this.context as DeckGLLayerContext).userData
230
+ .colorTables,
231
+ this.props.colorMapFunction
232
+ ),
233
+ parameters: DEFAULT_TEXTURE_PARAMETERS,
234
+ }),
235
+ valueRangeMin,
236
+ valueRangeMax,
237
+ colorMapRangeMin,
238
+ colorMapRangeMax,
239
+ colorMapClampColor,
240
+ isColorMapClampColorTransparent,
241
+ isClampColor,
242
+ })
243
+ .draw();
244
+ gl.disable(gl.POLYGON_OFFSET_FILL);
245
+
246
+ // Draw lines.
247
+ mesh_lines_model.draw();
248
+
249
+ if (!this.props.depthTest) {
250
+ gl.enable(gl.DEPTH_TEST);
251
+ }
252
+ }
253
+
254
+ decodePickingColor(): number {
255
+ return this.nullPickingColor() as unknown as number;
256
+ }
257
+
258
+ encodePickingColor(): number[] {
259
+ return this.nullPickingColor();
260
+ }
261
+
262
+ getPickingInfo({ info }: { info: PickingInfo }): LayerPickInfo {
263
+ if (!info.color) {
264
+ return info;
265
+ }
266
+
267
+ const layer_properties: PropertyDataType[] = [];
268
+
269
+ // Note these colors are in the 0-255 range.
270
+ const r = info.color[0];
271
+ const g = info.color[1];
272
+ const b = info.color[2];
273
+
274
+ const vertexIndex = 256 * 256 * r + 256 * g + b;
275
+
276
+ const vertexs = this.props.mesh.attributes.positions.value;
277
+ const depth = -vertexs[3 * vertexIndex + 2];
278
+ layer_properties.push(createPropertyData("Depth", depth));
279
+
280
+ const properties = this.props.mesh.attributes.properties.value;
281
+ const property = properties[vertexIndex];
282
+ layer_properties.push(createPropertyData("Property", property));
283
+
284
+ return {
285
+ ...info,
286
+ properties: layer_properties,
287
+ };
288
+ }
289
+ }
290
+
291
+ privateLayer.layerName = "privateLayer";
292
+ privateLayer.defaultProps = defaultProps;
@@ -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
+
43
+ export default vsShader;
@@ -0,0 +1,15 @@
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
+ `;
@@ -0,0 +1,173 @@
1
+ import { MeshType, MeshTypeLines } from "./privateLayer";
2
+ import { WebWorkerParams } from "./grid3dLayer";
3
+
4
+ export function makeFullMesh(e: { data: WebWorkerParams }): void {
5
+ // Keep
6
+ const t0 = performance.now();
7
+
8
+ const params = e.data;
9
+
10
+ const points = params.points;
11
+ const polys = params.polys;
12
+ const properties = params.properties;
13
+ const isZIncreasingDownwards = params.isZIncreasingDownwards;
14
+
15
+ const positions: number[] = [];
16
+ const indices: number[] = [];
17
+ const vertexProperties: number[] = [];
18
+ const line_positions: number[] = [];
19
+
20
+ let propertyValueRangeMin = +99999999;
21
+ let propertyValueRangeMax = -99999999;
22
+
23
+ const z_sign = isZIncreasingDownwards ? -1 : 1;
24
+
25
+ let pn = 0;
26
+ let indice = 0;
27
+ let i = 0;
28
+ while (i < polys.length) {
29
+ const n = polys[i];
30
+ const propertyValue = properties[pn++];
31
+
32
+ if (propertyValue !== null) {
33
+ // For some reason propertyValue happens to be null.
34
+ propertyValueRangeMin =
35
+ propertyValue < propertyValueRangeMin
36
+ ? propertyValue
37
+ : propertyValueRangeMin;
38
+ propertyValueRangeMax =
39
+ propertyValue > propertyValueRangeMax
40
+ ? propertyValue
41
+ : propertyValueRangeMax;
42
+ }
43
+
44
+ // Lines.
45
+ for (let j = i + 1; j < i + n; j++) {
46
+ const i1 = polys[j];
47
+ const i2 = polys[j + 1];
48
+
49
+ const x0 = points[3 * i1 + 0];
50
+ const y0 = points[3 * i1 + 1];
51
+ const z0 = points[3 * i1 + 2] * z_sign;
52
+
53
+ const x1 = points[3 * i2 + 0];
54
+ const y1 = points[3 * i2 + 1];
55
+ const z1 = points[3 * i2 + 2] * z_sign;
56
+
57
+ line_positions.push(x0, y0, z0);
58
+ line_positions.push(x1, y1, z1);
59
+ }
60
+
61
+ // Triangles.
62
+ if (n == 4) {
63
+ const i1 = polys[i + 1];
64
+ const i2 = polys[i + 2];
65
+ const i3 = polys[i + 3];
66
+ const i4 = polys[i + 4];
67
+
68
+ const x1 = points[3 * i1 + 0];
69
+ const y1 = points[3 * i1 + 1];
70
+ const z1 = points[3 * i1 + 2] * z_sign;
71
+
72
+ const x2 = points[3 * i2 + 0];
73
+ const y2 = points[3 * i2 + 1];
74
+ const z2 = points[3 * i2 + 2] * z_sign;
75
+
76
+ const x3 = points[3 * i3 + 0];
77
+ const y3 = points[3 * i3 + 1];
78
+ const z3 = points[3 * i3 + 2] * z_sign;
79
+
80
+ const x4 = points[3 * i4 + 0];
81
+ const y4 = points[3 * i4 + 1];
82
+ const z4 = points[3 * i4 + 2] * z_sign;
83
+
84
+ // t1
85
+ indices.push(indice++, indice++, indice++);
86
+
87
+ positions.push(x1, y1, z1);
88
+ positions.push(x2, y2, z2);
89
+ positions.push(x3, y3, z3);
90
+
91
+ vertexProperties.push(propertyValue);
92
+ vertexProperties.push(propertyValue);
93
+ vertexProperties.push(propertyValue);
94
+
95
+ // t2
96
+ indices.push(indice++, indice++, indice++);
97
+
98
+ positions.push(x1, y1, z1);
99
+ positions.push(x3, y3, z3);
100
+ positions.push(x4, y4, z4);
101
+
102
+ vertexProperties.push(propertyValue);
103
+ vertexProperties.push(propertyValue);
104
+ vertexProperties.push(propertyValue);
105
+ } else if (n == 3) {
106
+ // Refactor this n == 3 && n == 4.
107
+ const i1 = polys[i + 1];
108
+ const i2 = polys[i + 2];
109
+ const i3 = polys[i + 3];
110
+
111
+ const x1 = points[3 * i1 + 0];
112
+ const y1 = points[3 * i1 + 1];
113
+ const z1 = points[3 * i1 + 2] * z_sign;
114
+
115
+ const x2 = points[3 * i2 + 0];
116
+ const y2 = points[3 * i2 + 1];
117
+ const z2 = points[3 * i2 + 2] * z_sign;
118
+
119
+ const x3 = points[3 * i3 + 0];
120
+ const y3 = points[3 * i3 + 1];
121
+ const z3 = points[3 * i3 + 2] * z_sign;
122
+
123
+ // t1
124
+ indices.push(indice++, indice++, indice++);
125
+
126
+ positions.push(x1, y1, z1);
127
+ positions.push(x2, y2, z2);
128
+ positions.push(x3, y3, z3);
129
+
130
+ vertexProperties.push(propertyValue);
131
+ vertexProperties.push(propertyValue);
132
+ vertexProperties.push(propertyValue);
133
+ } else {
134
+ console.error("Only triangles or four corners are expected.");
135
+ }
136
+
137
+ i = i + n + 1;
138
+ }
139
+ console.log("Number of polygons: ", pn);
140
+
141
+ const mesh: MeshType = {
142
+ drawMode: 4, // corresponds to GL.TRIANGLES,
143
+ attributes: {
144
+ positions: { value: new Float32Array(positions), size: 3 },
145
+ properties: { value: new Float32Array(vertexProperties), size: 1 },
146
+ vertex_indexs: { value: new Int32Array(indices), size: 1 },
147
+ },
148
+ vertexCount: indices.length,
149
+ indices: { value: new Uint32Array(indices), size: 1 },
150
+ };
151
+
152
+ const mesh_lines: MeshTypeLines = {
153
+ drawMode: 1, // corresponds to GL.LINES,
154
+ attributes: {
155
+ positions: { value: new Float32Array(line_positions), size: 3 },
156
+ },
157
+ vertexCount: line_positions.length / 3,
158
+ };
159
+
160
+ const t1 = performance.now();
161
+ //Keep this.
162
+ console.log(`Task makeMesh took ${(t1 - t0) * 0.001} seconds.`);
163
+
164
+ // Note: typescript gives this error "error TS2554: Expected 2-3 arguments, but got 1."
165
+ // Disabling this for now as the second argument should be optional.
166
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
167
+ // @ts-ignore
168
+ postMessage([
169
+ mesh,
170
+ mesh_lines,
171
+ [propertyValueRangeMin, propertyValueRangeMax],
172
+ ]);
173
+ }
@@ -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
+
62
+ export default fsHillshading;