@equinor/videx-3d 5.1.0-beta

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 (235) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +120 -0
  3. package/dist/chunk-BX-cez1_.js +23 -0
  4. package/dist/chunk-CnY6Tmof.js +358 -0
  5. package/dist/chunk-MFzFdEWm.js +591 -0
  6. package/dist/chunk-iY0wQ9Z6.js +887 -0
  7. package/dist/generators.js +711 -0
  8. package/dist/main.js +8405 -0
  9. package/dist/sdk.js +610 -0
  10. package/dist/shaderLib/color-conversion.glsl +33 -0
  11. package/dist/shaderLib/colors.glsl +8 -0
  12. package/dist/shaderLib/glyphs.glsl +78 -0
  13. package/dist/shaderLib/random.glsl +3 -0
  14. package/dist/shaderLib/remap.glsl +13 -0
  15. package/dist/shaderLib/render-number.glsl +74 -0
  16. package/dist/shaderLib/render-text.glsl +66 -0
  17. package/dist/shaderLib/rotation.glsl +19 -0
  18. package/dist/shaderLib/sdf-functions.glsl +18 -0
  19. package/dist/textures/normal_map.jpg +0 -0
  20. package/dist/types/common/color-ramps.d.ts +5 -0
  21. package/dist/types/common/types.d.ts +25 -0
  22. package/dist/types/components/Annotations/Annotations.d.ts +42 -0
  23. package/dist/types/components/Annotations/AnnotationsHMTL.d.ts +1 -0
  24. package/dist/types/components/Annotations/AnnotationsLayer.d.ts +46 -0
  25. package/dist/types/components/Annotations/AutoUpdate.d.ts +3 -0
  26. package/dist/types/components/Annotations/DefaultLabelComponent.d.ts +11 -0
  27. package/dist/types/components/Annotations/TestAnnotations.d.ts +12 -0
  28. package/dist/types/components/Annotations/annotations-renderer.d.ts +26 -0
  29. package/dist/types/components/Annotations/annotations-state.d.ts +88 -0
  30. package/dist/types/components/Annotations/helpers.d.ts +11 -0
  31. package/dist/types/components/Annotations/index.d.ts +8 -0
  32. package/dist/types/components/Annotations/types.d.ts +80 -0
  33. package/dist/types/components/Annotations/update-annotations.d.ts +12 -0
  34. package/dist/types/components/CameraTargetMarker/CameraTargetMarker.d.ts +29 -0
  35. package/dist/types/components/Distance/Distance.d.ts +35 -0
  36. package/dist/types/components/Distance/DistanceContext.d.ts +12 -0
  37. package/dist/types/components/Distance/index.d.ts +2 -0
  38. package/dist/types/components/EventEmitter/EventEmitter.d.ts +20 -0
  39. package/dist/types/components/EventEmitter/EventEmitterContext.d.ts +90 -0
  40. package/dist/types/components/EventEmitter/index.d.ts +3 -0
  41. package/dist/types/components/EventEmitter/picking-helper.d.ts +32 -0
  42. package/dist/types/components/EventEmitter/picking-material.d.ts +11 -0
  43. package/dist/types/components/Grids/BoxGrid/BoxGrid.d.ts +52 -0
  44. package/dist/types/components/Grids/Grid/Grid.d.ts +62 -0
  45. package/dist/types/components/Grids/Grid/GridAxesLabels.d.ts +24 -0
  46. package/dist/types/components/Grids/Grid/UtmGrid.d.ts +30 -0
  47. package/dist/types/components/Grids/Grid/grid-helpers.d.ts +2 -0
  48. package/dist/types/components/Grids/index.d.ts +5 -0
  49. package/dist/types/components/Highlighter/Highlighter.d.ts +23 -0
  50. package/dist/types/components/Highlighter/highlight-state.d.ts +43 -0
  51. package/dist/types/components/Highlighter/index.d.ts +2 -0
  52. package/dist/types/components/Html/DepthSelector.d.ts +1 -0
  53. package/dist/types/components/Html/OutputPanel/OutputPanel.d.ts +10 -0
  54. package/dist/types/components/Html/OutputPanel/index.d.ts +2 -0
  55. package/dist/types/components/Html/OutputPanel/output-panel-state.d.ts +38 -0
  56. package/dist/types/components/Html/Panel/Panel.d.ts +20 -0
  57. package/dist/types/components/Html/WellMap/ActiveTrack.d.ts +9 -0
  58. package/dist/types/components/Html/WellMap/DepthCursor.d.ts +8 -0
  59. package/dist/types/components/Html/WellMap/DepthReadout.d.ts +6 -0
  60. package/dist/types/components/Html/WellMap/Schematic.d.ts +15 -0
  61. package/dist/types/components/Html/WellMap/Track.d.ts +13 -0
  62. package/dist/types/components/Html/WellMap/WellMap.d.ts +47 -0
  63. package/dist/types/components/Html/WellMap/addons/WellMapCasingShoes.d.ts +14 -0
  64. package/dist/types/components/Html/WellMap/addons/WellMapCompletionIntervals.d.ts +15 -0
  65. package/dist/types/components/Html/WellMap/addons/WellMapFormations.d.ts +14 -0
  66. package/dist/types/components/Html/WellMap/addons/WellMapTvd.d.ts +14 -0
  67. package/dist/types/components/Html/WellMap/addons/index.d.ts +4 -0
  68. package/dist/types/components/Html/WellMap/index.d.ts +4 -0
  69. package/dist/types/components/Html/WellMap/themes.d.ts +13 -0
  70. package/dist/types/components/Html/WellMap/well-map-context.d.ts +34 -0
  71. package/dist/types/components/Html/WellMap/well-map-state.d.ts +38 -0
  72. package/dist/types/components/Html/index.d.ts +5 -0
  73. package/dist/types/components/ObservableGroup/ObservableGroup.d.ts +38 -0
  74. package/dist/types/components/SDFTest/SDFTest.d.ts +12 -0
  75. package/dist/types/components/Surfaces/Surface.d.ts +46 -0
  76. package/dist/types/components/Surfaces/SurfaceMaterial.d.ts +53 -0
  77. package/dist/types/components/Surfaces/index.d.ts +4 -0
  78. package/dist/types/components/Surfaces/surface-defs.d.ts +7 -0
  79. package/dist/types/components/Symbol/Symbol.d.ts +45 -0
  80. package/dist/types/components/Symbol/index.d.ts +1 -0
  81. package/dist/types/components/UtmArea/UtmArea.d.ts +37 -0
  82. package/dist/types/components/UtmArea/UtmAreaContext.d.ts +32 -0
  83. package/dist/types/components/UtmArea/UtmPosition.d.ts +26 -0
  84. package/dist/types/components/UtmArea/Wgs84Position.d.ts +26 -0
  85. package/dist/types/components/UtmArea/index.d.ts +4 -0
  86. package/dist/types/components/Wellbores/BasicTrajectory/BasicTrajectory.d.ts +27 -0
  87. package/dist/types/components/Wellbores/BasicTrajectory/basic-trajectory-defs.d.ts +3 -0
  88. package/dist/types/components/Wellbores/BasicTrajectory/index.d.ts +2 -0
  89. package/dist/types/components/Wellbores/Casings/CasingAnnotations/CasingAnnotations.d.ts +9 -0
  90. package/dist/types/components/Wellbores/Casings/CasingAnnotations/CasingLabel.d.ts +9 -0
  91. package/dist/types/components/Wellbores/Casings/CasingAnnotations/casing-annotations-defs.d.ts +1 -0
  92. package/dist/types/components/Wellbores/Casings/Casings.d.ts +42 -0
  93. package/dist/types/components/Wellbores/Casings/casings-defs.d.ts +6 -0
  94. package/dist/types/components/Wellbores/Casings/index.d.ts +5 -0
  95. package/dist/types/components/Wellbores/CompletionTools/CompletionAnnotations/CompletionAnnotations.d.ts +9 -0
  96. package/dist/types/components/Wellbores/CompletionTools/CompletionAnnotations/completion-annotations-defs.d.ts +1 -0
  97. package/dist/types/components/Wellbores/CompletionTools/CompletionTools.d.ts +31 -0
  98. package/dist/types/components/Wellbores/CompletionTools/Screen/screen-material.d.ts +8 -0
  99. package/dist/types/components/Wellbores/CompletionTools/completion-tools-defs.d.ts +4 -0
  100. package/dist/types/components/Wellbores/CompletionTools/index.d.ts +5 -0
  101. package/dist/types/components/Wellbores/DepthMarkers/DepthMarkerLabel.d.ts +11 -0
  102. package/dist/types/components/Wellbores/DepthMarkers/DepthMarkers.d.ts +27 -0
  103. package/dist/types/components/Wellbores/DepthMarkers/depth-markers-defs.d.ts +1 -0
  104. package/dist/types/components/Wellbores/DepthMarkers/index.d.ts +3 -0
  105. package/dist/types/components/Wellbores/FormationMarkers/FormationMarkerLabel.d.ts +10 -0
  106. package/dist/types/components/Wellbores/FormationMarkers/FormationMarkers.d.ts +33 -0
  107. package/dist/types/components/Wellbores/FormationMarkers/formation-markers-defs.d.ts +3 -0
  108. package/dist/types/components/Wellbores/FormationMarkers/index.d.ts +3 -0
  109. package/dist/types/components/Wellbores/Perforations/Perforations.d.ts +32 -0
  110. package/dist/types/components/Wellbores/Perforations/index.d.ts +2 -0
  111. package/dist/types/components/Wellbores/Perforations/perforations-defs.d.ts +3 -0
  112. package/dist/types/components/Wellbores/Perimeter/Perimeter.d.ts +29 -0
  113. package/dist/types/components/Wellbores/Perimeter/index.d.ts +2 -0
  114. package/dist/types/components/Wellbores/Perimeter/perimeter-defs.d.ts +3 -0
  115. package/dist/types/components/Wellbores/PositionMarkers/PositionMarkers.d.ts +12 -0
  116. package/dist/types/components/Wellbores/PositionMarkers/position-markers-defs.d.ts +3 -0
  117. package/dist/types/components/Wellbores/Shoes/Shoes.d.ts +34 -0
  118. package/dist/types/components/Wellbores/Shoes/index.d.ts +2 -0
  119. package/dist/types/components/Wellbores/Shoes/shoes-defs.d.ts +3 -0
  120. package/dist/types/components/Wellbores/TubeTrajectory/TubeTrajectory.d.ts +25 -0
  121. package/dist/types/components/Wellbores/TubeTrajectory/index.d.ts +2 -0
  122. package/dist/types/components/Wellbores/TubeTrajectory/tube-geometry-defs.d.ts +3 -0
  123. package/dist/types/components/Wellbores/Wellbore/Wellbore.d.ts +45 -0
  124. package/dist/types/components/Wellbores/Wellbore/WellboreContext.d.ts +19 -0
  125. package/dist/types/components/Wellbores/Wellbore/index.d.ts +2 -0
  126. package/dist/types/components/Wellbores/WellboreBounds/WellboreBounds.d.ts +47 -0
  127. package/dist/types/components/Wellbores/WellboreBounds/index.d.ts +2 -0
  128. package/dist/types/components/Wellbores/WellboreBounds/wellbore-bounds-defs.d.ts +1 -0
  129. package/dist/types/components/Wellbores/WellboreFormationColumn/WellboreFormationColumn.d.ts +30 -0
  130. package/dist/types/components/Wellbores/WellboreFormationColumn/index.d.ts +2 -0
  131. package/dist/types/components/Wellbores/WellboreFormationColumn/wellbore-formation-column-defs.d.ts +3 -0
  132. package/dist/types/components/Wellbores/WellboreLabel/WellboreAnnotationLabel.d.ts +10 -0
  133. package/dist/types/components/Wellbores/WellboreLabel/WellboreLabel.d.ts +25 -0
  134. package/dist/types/components/Wellbores/WellboreLabel/index.d.ts +3 -0
  135. package/dist/types/components/Wellbores/WellboreLabel/wellbore-label-defs.d.ts +1 -0
  136. package/dist/types/components/Wellbores/WellboreRibbon/WellboreRibbon.d.ts +22 -0
  137. package/dist/types/components/Wellbores/WellboreRibbon/WellboreRibbonContext.d.ts +16 -0
  138. package/dist/types/components/Wellbores/WellboreRibbon/index.d.ts +4 -0
  139. package/dist/types/components/Wellbores/WellboreRibbon/stripes/FormationsStripe.d.ts +30 -0
  140. package/dist/types/components/Wellbores/WellboreRibbon/stripes/MeasuredDepthStripe.d.ts +28 -0
  141. package/dist/types/components/Wellbores/WellboreSeismicSection/WellboreSeismicSection.d.ts +34 -0
  142. package/dist/types/components/Wellbores/WellboreSeismicSection/index.d.ts +2 -0
  143. package/dist/types/components/Wellbores/WellboreSeismicSection/wellbore-seismic-section-defs.d.ts +12 -0
  144. package/dist/types/components/Wellbores/Wells/Wells.d.ts +43 -0
  145. package/dist/types/components/Wellbores/Wells/index.d.ts +1 -0
  146. package/dist/types/contexts/DataContext.d.ts +15 -0
  147. package/dist/types/contexts/DataContextProvider.d.ts +33 -0
  148. package/dist/types/contexts/GeneratorsContext.d.ts +13 -0
  149. package/dist/types/contexts/GeneratorsContextProvider.d.ts +34 -0
  150. package/dist/types/contexts/GlyphsContext.d.ts +19 -0
  151. package/dist/types/contexts/GlyphsContextProvider.d.ts +29 -0
  152. package/dist/types/events/camera-events.d.ts +34 -0
  153. package/dist/types/events/depth-events.d.ts +22 -0
  154. package/dist/types/events/interaction-events.d.ts +7 -0
  155. package/dist/types/events/wellbore-events.d.ts +46 -0
  156. package/dist/types/generators/basic-trajectory-generator.d.ts +2 -0
  157. package/dist/types/generators/casing-annotations-generator.d.ts +8 -0
  158. package/dist/types/generators/casings-generator.d.ts +4 -0
  159. package/dist/types/generators/completion-annotations-generator.d.ts +7 -0
  160. package/dist/types/generators/completion-tools-generator.d.ts +2 -0
  161. package/dist/types/generators/depth-markers-generator.d.ts +3 -0
  162. package/dist/types/generators/formation-markers-generator.d.ts +2 -0
  163. package/dist/types/generators/index.d.ts +20 -0
  164. package/dist/types/generators/perforations-generator.d.ts +2 -0
  165. package/dist/types/generators/perimieter-generator.d.ts +2 -0
  166. package/dist/types/generators/position-markers-generator.d.ts +2 -0
  167. package/dist/types/generators/shoes-generator.d.ts +2 -0
  168. package/dist/types/generators/surface-generator.d.ts +4 -0
  169. package/dist/types/generators/tube-trajectory-generator.d.ts +2 -0
  170. package/dist/types/generators/wellbore-bounds-generator.d.ts +2 -0
  171. package/dist/types/generators/wellbore-formation-column-generator.d.ts +2 -0
  172. package/dist/types/generators/wellbore-label-generator.d.ts +7 -0
  173. package/dist/types/generators/wellbore-seismic-section-generator.d.ts +3 -0
  174. package/dist/types/hooks/useData.d.ts +25 -0
  175. package/dist/types/hooks/useGenerator.d.ts +43 -0
  176. package/dist/types/hooks/useWellboreContext.d.ts +13 -0
  177. package/dist/types/layers/layers.d.ts +6 -0
  178. package/dist/types/main.d.ts +48 -0
  179. package/dist/types/rendering/fullscreen-renderer.d.ts +9 -0
  180. package/dist/types/rendering/index.d.ts +2 -0
  181. package/dist/types/rendering/render-passes.d.ts +16 -0
  182. package/dist/types/sdk/data/DataLoader.d.ts +54 -0
  183. package/dist/types/sdk/data/GeneratorRegistry.d.ts +15 -0
  184. package/dist/types/sdk/data/Store.d.ts +29 -0
  185. package/dist/types/sdk/data/helpers/formations-helpers.d.ts +24 -0
  186. package/dist/types/sdk/data/helpers/well-helpers.d.ts +9 -0
  187. package/dist/types/sdk/data/types/Casing.d.ts +8 -0
  188. package/dist/types/sdk/data/types/CompletionTool.d.ts +11 -0
  189. package/dist/types/sdk/data/types/DepthReferencePoint.d.ts +1 -0
  190. package/dist/types/sdk/data/types/Formation.d.ts +32 -0
  191. package/dist/types/sdk/data/types/PerforationInterval.d.ts +9 -0
  192. package/dist/types/sdk/data/types/Pick.d.ts +8 -0
  193. package/dist/types/sdk/data/types/PositionLog.d.ts +17 -0
  194. package/dist/types/sdk/data/types/StratColumn.d.ts +18 -0
  195. package/dist/types/sdk/data/types/SurfaceMeta.d.ts +23 -0
  196. package/dist/types/sdk/data/types/SurfaceValues.d.ts +1 -0
  197. package/dist/types/sdk/data/types/Symbol.d.ts +6 -0
  198. package/dist/types/sdk/data/types/VerticalSlice.d.ts +9 -0
  199. package/dist/types/sdk/data/types/WellboreHeader.d.ts +15 -0
  200. package/dist/types/sdk/data/types/index.d.ts +11 -0
  201. package/dist/types/sdk/geometries/curve/curve-3d.d.ts +46 -0
  202. package/dist/types/sdk/geometries/curve/tube-geometry.d.ts +34 -0
  203. package/dist/types/sdk/geometries/delatin.d.ts +44 -0
  204. package/dist/types/sdk/geometries/fence.d.ts +3 -0
  205. package/dist/types/sdk/geometries/packing.d.ts +46 -0
  206. package/dist/types/sdk/geometries/triangulate-grid-delaunay.d.ts +8 -0
  207. package/dist/types/sdk/geometries/triangulate-grid.d.ts +28 -0
  208. package/dist/types/sdk/index.d.ts +39 -0
  209. package/dist/types/sdk/managers/CameraManager.d.ts +11 -0
  210. package/dist/types/sdk/managers/WellboreManager.d.ts +18 -0
  211. package/dist/types/sdk/materials/depth-material.d.ts +4 -0
  212. package/dist/types/sdk/materials/ribbon-material.d.ts +24 -0
  213. package/dist/types/sdk/materials/tube-material.d.ts +7 -0
  214. package/dist/types/sdk/materials/uv-material.d.ts +2 -0
  215. package/dist/types/sdk/projection/crs.d.ts +37 -0
  216. package/dist/types/sdk/types/common.d.ts +4 -0
  217. package/dist/types/sdk/utils/array.d.ts +0 -0
  218. package/dist/types/sdk/utils/colors.d.ts +2 -0
  219. package/dist/types/sdk/utils/conversions.d.ts +5 -0
  220. package/dist/types/sdk/utils/depth-reader.d.ts +5 -0
  221. package/dist/types/sdk/utils/elevation-map.d.ts +15 -0
  222. package/dist/types/sdk/utils/glyphs.d.ts +50 -0
  223. package/dist/types/sdk/utils/irapbin-parser.d.ts +17 -0
  224. package/dist/types/sdk/utils/num-array.d.ts +2 -0
  225. package/dist/types/sdk/utils/numbers.d.ts +5 -0
  226. package/dist/types/sdk/utils/packing.d.ts +1 -0
  227. package/dist/types/sdk/utils/scene.d.ts +2 -0
  228. package/dist/types/sdk/utils/segments.d.ts +4 -0
  229. package/dist/types/sdk/utils/strings.d.ts +2 -0
  230. package/dist/types/sdk/utils/trajectory.d.ts +59 -0
  231. package/dist/types/sdk/utils/trigonometry.d.ts +12 -0
  232. package/dist/types/sdk/utils/typed-2d-array.d.ts +52 -0
  233. package/dist/types/sdk/utils/typed-array.d.ts +2 -0
  234. package/dist/types/sdk/utils/vector-operations.d.ts +29 -0
  235. package/package.json +127 -0
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @module sdk
3
+ */
4
+ export * from './data/DataLoader';
5
+ export * from './data/GeneratorRegistry';
6
+ export * from './data/helpers/formations-helpers';
7
+ export * from './data/helpers/well-helpers';
8
+ export * from './data/Store';
9
+ export * from './data/types';
10
+ export * from './geometries/curve/curve-3d';
11
+ export * from './geometries/curve/tube-geometry';
12
+ export * from './geometries/delatin';
13
+ export * from './geometries/fence';
14
+ export * from './geometries/packing';
15
+ export * from './geometries/triangulate-grid';
16
+ export * from './geometries/triangulate-grid-delaunay';
17
+ export * from './managers/CameraManager';
18
+ export * from './managers/WellboreManager';
19
+ export * from './projection/crs';
20
+ export * from './types/common';
21
+ export * from './utils/colors';
22
+ export * from './utils/conversions';
23
+ export * from './utils/depth-reader';
24
+ export * from './utils/elevation-map';
25
+ export * from './utils/glyphs';
26
+ export * from './utils/irapbin-parser';
27
+ export * from './utils/num-array';
28
+ export * from './utils/numbers';
29
+ export * from './utils/scene';
30
+ export * from './utils/segments';
31
+ export * from './utils/strings';
32
+ export * from './utils/trajectory';
33
+ export * from './utils/trigonometry';
34
+ export * from './utils/typed-2d-array';
35
+ export * from './utils/typed-array';
36
+ export * from './utils/vector-operations';
37
+ export * from './materials/depth-material';
38
+ export * from './materials/tube-material';
39
+ export * from './materials/uv-material';
@@ -0,0 +1,11 @@
1
+ import { CameraControls } from '@react-three/drei';
2
+ import { Vec3 } from '../types/common';
3
+ export declare class CameraManager {
4
+ controls: CameraControls | null;
5
+ removeEventlisteners: (() => void) | null;
6
+ constructor();
7
+ private addEventListeners;
8
+ setTarget(target: Vec3): Promise<void | null>;
9
+ setControls(controls: CameraControls): void;
10
+ dispose(): void;
11
+ }
@@ -0,0 +1,18 @@
1
+ import { Object3D } from 'three';
2
+ import { Vec3 } from '../types/common';
3
+ export type WellboreManagerRecord = {
4
+ wellboreId: string;
5
+ object: Object3D;
6
+ };
7
+ export declare class WellboreManager {
8
+ private map;
9
+ constructor();
10
+ private onWellboreAdded;
11
+ private onWellboreRemoved;
12
+ getInfo(id: string): {
13
+ position: Vec3;
14
+ wellboreId: string;
15
+ object: Object3D;
16
+ } | undefined;
17
+ dispose(): void;
18
+ }
@@ -0,0 +1,4 @@
1
+ import { ShaderMaterial } from 'three';
2
+ export declare class DepthReadMaterial extends ShaderMaterial {
3
+ constructor();
4
+ }
@@ -0,0 +1,24 @@
1
+ import { Color, MeshLambertMaterialParameters, ShaderMaterial, Texture } from 'three';
2
+ export type RibonMaterialParams = MeshLambertMaterialParameters & {
3
+ angle?: number;
4
+ width?: number;
5
+ offset?: number;
6
+ ignoreLight?: boolean;
7
+ };
8
+ export declare class RibbonMaterial extends ShaderMaterial {
9
+ isRibbonMaterial: boolean;
10
+ constructor(parameters?: RibonMaterialParams);
11
+ get color(): Color;
12
+ set color(color: Color);
13
+ get angle(): number;
14
+ set angle(a: number);
15
+ get offset(): number;
16
+ set offset(o: number);
17
+ get width(): number;
18
+ set width(w: number);
19
+ get map(): Texture | null;
20
+ set map(m: Texture | null);
21
+ get ignoreLight(): boolean;
22
+ set ignoreLight(f: boolean);
23
+ onBeforeCompile(): void;
24
+ }
@@ -0,0 +1,7 @@
1
+ import { Color, MeshBasicMaterialParameters, ShaderMaterial } from 'three';
2
+ export declare class TubeMaterial extends ShaderMaterial {
3
+ isTubeMaterial: boolean;
4
+ constructor(parameters?: MeshBasicMaterialParameters);
5
+ get color(): Color;
6
+ set color(color: Color);
7
+ }
@@ -0,0 +1,2 @@
1
+ import { ShaderMaterial } from 'three';
2
+ export declare const uvMaterial: ShaderMaterial;
@@ -0,0 +1,37 @@
1
+ import { Converter } from 'proj4';
2
+ export declare const wgs84Def = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs";
3
+ /**
4
+ * Maps between real world UTM coordinates and 3d world coordinates by assigning a known real world
5
+ * position to the center of the 3d world and specifying an UTM zone.
6
+ */
7
+ export declare class CRS {
8
+ utmDef: string;
9
+ originWgs84: [number, number];
10
+ originUtm: [number, number];
11
+ _projection: Converter;
12
+ constructor(utmDef: string, origin: [number, number], originUnits?: 'utm' | 'lnglat');
13
+ utmToWgs84(eastingNorthing: [number, number]): [number, number];
14
+ wgs84ToUtm(lngLat: [number, number]): [number, number];
15
+ utmToWorld(easting: number, northing: number, altitude: number): {
16
+ x: number;
17
+ y: number;
18
+ z: number;
19
+ };
20
+ worldToUtm(x: number, y: number, z: number): {
21
+ easting: number;
22
+ altitude: number;
23
+ northing: number;
24
+ };
25
+ wgs84ToWorld(lng: number, lat: number, altitude?: number): {
26
+ x: number;
27
+ y: number;
28
+ z: number;
29
+ };
30
+ worldToWgs84(x: number, y: number, z: number): {
31
+ lng: number;
32
+ lat: number;
33
+ alt: number;
34
+ };
35
+ }
36
+ export declare function getProjectionDefFromUtmZone(utmZone: string): string;
37
+ export declare function getUtmZoneFromLatLng([lng, lat]: [number, number]): string;
@@ -0,0 +1,4 @@
1
+ export type Vec2 = [number, number];
2
+ export type Vec3 = [number, number, number];
3
+ export type Vec4 = [number, number, number, number];
4
+ export type Tuplet<T> = [T, T];
File without changes
@@ -0,0 +1,2 @@
1
+ export declare const idToHexColor: (num: number) => string;
2
+ export declare function randomColor(): string;
@@ -0,0 +1,5 @@
1
+ import { Vec2 } from '../types/common';
2
+ export declare function feetToMeters(feet: number): number;
3
+ export declare function degreesToRadians(deg: number): number;
4
+ export declare const screenToNormalizedDevice: (pos: Vec2, width?: number, height?: number) => Vec2;
5
+ export declare const normalizedDeviceToScreen: (pos: Vec2, width?: number, height?: number) => Vec2;
@@ -0,0 +1,5 @@
1
+ import { PerspectiveCamera, Texture, WebGLRenderer } from 'three';
2
+ /**
3
+ * Read-back the normalized device coordinates from a depth texture
4
+ */
5
+ export declare function readDepth(depthTexture: Texture, renderer: WebGLRenderer, camera: PerspectiveCamera, idx?: number): Promise<number | number[] | null>;
@@ -0,0 +1,15 @@
1
+ import { DataTexture } from 'three';
2
+ import { Vec3 } from '../../sdk';
3
+ export declare function triangleNormal(p0: Vec3, p1: Vec3, p2: Vec3): Vec3;
4
+ /**
5
+ * Calcukate and encode surface normals from an elevation grid as RGBA image values.
6
+ */
7
+ export declare function elevationMapNormalsToRGBA(data: Float32Array, columns: number, xScale: number, yScale: number, rotation?: number, nullValue?: number): Uint8Array<ArrayBuffer>;
8
+ /**
9
+ * Create a data texture from RGBA encoded normals
10
+ */
11
+ export declare function createNormalTexture(buffer: Uint8Array, width: number, height: number): DataTexture;
12
+ /**
13
+ * Create a data texture from RGBA encoded depth values
14
+ */
15
+ export declare function createElevationTexture(buffer: Float32Array, width: number, height: number): DataTexture;
@@ -0,0 +1,50 @@
1
+ import { DataTexture, UniformsGroup } from 'three';
2
+ export type Glyph = {
3
+ position: [number, number];
4
+ dimension: [number, number];
5
+ offset: [number, number];
6
+ spacing: number;
7
+ };
8
+ export type EncodedTextSegment = {
9
+ indices: number[];
10
+ width: number;
11
+ };
12
+ export type EncodedTextTexture = {
13
+ texture: DataTexture;
14
+ textPointersOffset: number;
15
+ textPointersCount: number;
16
+ };
17
+ export type GlyphConfig = {
18
+ glyphsCount: number;
19
+ glyphData: UniformsGroup;
20
+ encodeText: (text: string) => EncodedTextSegment;
21
+ encodeTextTexture: (textSegments: string[] | string) => EncodedTextTexture;
22
+ dispose: () => void;
23
+ };
24
+ export interface MsdfFontJson {
25
+ info: {
26
+ size: number;
27
+ };
28
+ common: {
29
+ scaleW: number;
30
+ scaleH: number;
31
+ lineHeight: number;
32
+ base: number;
33
+ };
34
+ chars: {
35
+ id: number;
36
+ index: number;
37
+ char: string;
38
+ width: number;
39
+ height: number;
40
+ xoffset: number;
41
+ yoffset: number;
42
+ xadvance: number;
43
+ x: number;
44
+ y: number;
45
+ }[];
46
+ distanceField: {
47
+ distanceRange: number;
48
+ };
49
+ }
50
+ export declare function createConfig(json: MsdfFontJson): GlyphConfig;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Parses irabin surface/horizon binary files and return the header information and elevation data
3
+ */
4
+ export declare function parseIrapbin(blob: Blob, nullValue?: number, refDepth?: number | null): Promise<{
5
+ header: {
6
+ ny: number;
7
+ xori: number;
8
+ xmax: number;
9
+ yori: number;
10
+ ymax: number;
11
+ xinc: number;
12
+ yinc: number;
13
+ nx: number;
14
+ rot: number;
15
+ };
16
+ data: Float32Array<ArrayBuffer>;
17
+ }>;
@@ -0,0 +1,2 @@
1
+ export declare function negate(numArray: number[]): number[];
2
+ export declare function multiply(numArray: number[], factor: number): number[];
@@ -0,0 +1,5 @@
1
+ export declare function clamp(value: number, min?: number, max?: number): number;
2
+ export declare function lerp(from: number, to: number, t: number): number;
3
+ export declare function inverseLerp(v: number, minValue: number, maxValue: number): number;
4
+ export declare function remap(v: number, inMin: number, inMax: number, outMin: number, outMax: number): number;
5
+ export declare const toRGB: (v: number) => number[];
@@ -0,0 +1 @@
1
+ export declare function unpackRGBAToDepth(r: number, g: number, b: number, a: number): number;
@@ -0,0 +1,2 @@
1
+ import { Object3D, Scene } from 'three';
2
+ export declare function getObjectByCustomProperty(propName: string, value: any, scene: Scene): Object3D<import('three').Object3DEventMap> | null;
@@ -0,0 +1,4 @@
1
+ export declare function toSegments<T>(intervals: T[], start: (item: T) => number, end: (item: T) => number): {
2
+ start: number;
3
+ end: number;
4
+ }[];
@@ -0,0 +1,2 @@
1
+ export declare function calculateHashValue(str?: string): number;
2
+ export declare function titleCase(str: string): string;
@@ -0,0 +1,59 @@
1
+ import { PositionLog } from '../data/types/PositionLog';
2
+ import { Curve3D } from '../geometries/curve/curve-3d';
3
+ import { Vec2, Vec3 } from '../types/common';
4
+ /**
5
+ * Interface for defining a trajectory. This can be used to work with wellbore trajectories,
6
+ * where the measured top, termination point and length are known. The measured length should
7
+ * be used when calculating positions of data given in MD, so that the position on the curve is
8
+ * given by:
9
+ *
10
+ * @example
11
+ * const pos = (md - trajectory.measuredTop) / trajectory.measuredLength
12
+ *
13
+ * @remarks
14
+ * Avoid using the calculated length of the curve for this purpose, as this may potentially be less precise/consistant.
15
+ * The `getPointAtDepth` function in this interface is calculated as in the above example when created using the `getTrajectory` function.
16
+ *
17
+ * @see {@link getTrajectory}
18
+ * @see {@link Curve3D}
19
+ */
20
+ export interface Trajectory {
21
+ id: string | number;
22
+ measuredLength: number;
23
+ measuredTop: number;
24
+ measuredBottom: number;
25
+ curve: Curve3D;
26
+ getPointAtDepth: (md: number, clamped?: boolean) => Vec3 | null;
27
+ getPositionAtDepth: (md: number, clamped?: boolean) => number | null;
28
+ }
29
+ export type ProjectedTrajectory = {
30
+ positions: Vec2[];
31
+ length: number;
32
+ top: number;
33
+ bottom: number;
34
+ } | null;
35
+ /**
36
+ * Creates an instance conforming to the `Trajectory` interface, given an id and a position log normalized to MSL depths.
37
+ *
38
+ * @see {@link Trajectory}
39
+ */
40
+ export declare function getTrajectory(id: string, poslogMsl: PositionLog | null): Trajectory | null;
41
+ /**
42
+ * Simplifies a linear 2d curve by comparing direction changes to a threshold value.
43
+ * @param array input array
44
+ * @param accessor accessor to array coordinate element
45
+ * @param threshold threshold value (default 1e-7)
46
+ * @returns T[] array of same type as input array
47
+ */
48
+ export declare function simplifyCurve2D<T>(array: Array<T>, accessor?: (e: T) => Vec2, threshold?: number): T[];
49
+ /**
50
+ * Generate a equaly spaced trajectory along XZ plane from a linear 3d curve
51
+ * where the distance between coordinates corresponds to stepSize.
52
+ * @param path 3d curve
53
+ * @param stepSize distance between corrdinates in output trajectory
54
+ * @param extension optional extension of original path (extrapolation)
55
+ * @param minSize a minimum size of the output. If less, points will be extrapolated in both ends
56
+ * @param defaultExtensionAngle if there is not enough deviation in the input path to determine an extrapolation angle, this angle will be used (default: 0 radians)
57
+ * @returns 2d curve along the XZ plane
58
+ */
59
+ export declare function getProjectedTrajectory(path: Vec3[], stepSize: number, extension?: number, minSize?: number, defaultExtensionAngle?: number): ProjectedTrajectory;
@@ -0,0 +1,12 @@
1
+ import { Vec2 } from '../types/common';
2
+ export declare const PI: number;
3
+ export declare const TAU: number;
4
+ export declare const PI2: number;
5
+ export declare const PI4: number;
6
+ export declare const PI8: number;
7
+ /**
8
+ * Given a 2D rectangle and an angle off the center, find the point
9
+ * of the closest corner. Used for anchoring connector lines
10
+ * to annotation labels.
11
+ */
12
+ export declare function edgeOfRectangle(rect: Vec2, theta: number): Vec2;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * This class makes it easier to worked with typed arrray used in a 2d grid.
3
+ * It allow you to read from and write to a flat typed array using columns, rows
4
+ * and blocks. It alow you to specify the stride per grid cell, so if you need
5
+ * a grid og RGB colors, you set the stride to 3.
6
+ *
7
+ * Another useful feature of this class is that it will use bilinear interpolation
8
+ * if you reference columns and/or rows with decimal indexes.
9
+ *
10
+ * @author Kjerand Pedersen
11
+ */
12
+ export type TypedArrayArrayType = Float32Array | Uint8Array | Uint16Array | Uint32Array;
13
+ export type TypedArrayOutputArray = TypedArrayArrayType | undefined;
14
+ export type TypedArrayInputArray = number[];
15
+ export type TypedArrayMapFunction = (input: number | TypedArrayArrayType) => number | TypedArrayArrayType;
16
+ export type InterpolationFunction = (a: number, b: number, c: number, d: number, t1: number, t2: number) => number;
17
+ export declare class Typed2DArray {
18
+ data: TypedArrayArrayType;
19
+ columns: number;
20
+ rows: number;
21
+ stride: number;
22
+ private _rowLength;
23
+ private _lerpFn;
24
+ private arrayConstructor;
25
+ constructor(data: TypedArrayArrayType, columns: number, stride?: number);
26
+ static readWriteBlock(source: Typed2DArray, sourceCol: number, sourceRow: number, sourceColumns: number, sourceRows: number, target: Typed2DArray, targetCol: number, targetRow: number, targetColumns: number, targetRows: number, mapFunction?: TypedArrayMapFunction | null): typeof Typed2DArray;
27
+ static logInterp(a: number, b: number, c: number, d: number, t1: number, t2: number): number;
28
+ static linearInterp(a: number, b: number, c: number, d: number, t1: number, t2: number): number;
29
+ static nearestInterp(a: number, b: number, c: number, d: number, t1: number, t2: number): number;
30
+ get width(): number;
31
+ get height(): number;
32
+ index(col: number, row: number): number;
33
+ positionOf(index: number): {
34
+ row: number;
35
+ col: number;
36
+ } | undefined;
37
+ setInterpolator(...interpolatorFunction: InterpolationFunction[]): this;
38
+ getInterpolator(component: number): InterpolationFunction;
39
+ col(col: number, out: TypedArrayOutputArray): TypedArrayArrayType;
40
+ row(row: number, out: TypedArrayOutputArray): Float32Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | Uint16Array<ArrayBufferLike> | Uint32Array<ArrayBufferLike>;
41
+ setValue(col: number, row: number, ...value: TypedArrayInputArray): this;
42
+ readBlock(fromCol: number, fromRow: number, columns: number, rows: number, targetColumns?: number, targetRows?: number, out?: TypedArrayOutputArray): TypedArrayArrayType;
43
+ upscale(newColumns: number, newRows: number): this;
44
+ writeBlock(fromCol: number, fromRow: number, columns: number, rows: number, values: number[]): this;
45
+ fillBlock(fromCol: number, fromRow: number, cols: number, rows: number, value: number | ((c: number, r: number, i: number) => number | number[])): this;
46
+ valueOf(index: number, out?: TypedArrayOutputArray): number | TypedArrayArrayType;
47
+ valueAt(col: number, row: number, out?: TypedArrayOutputArray): number | TypedArrayArrayType;
48
+ swapRows(r1: number, r2: number, temp: TypedArrayArrayType): this;
49
+ invertRows(): this;
50
+ copyInto(target: TypedArrayArrayType, fromCol?: number, fromRow?: number, columns?: number, rows?: number): this;
51
+ toJsArray(): any[];
52
+ }
@@ -0,0 +1,2 @@
1
+ import { Vec3 } from '../types/common';
2
+ export declare function toFloat32Array(arrayOfVectors: Vec3[]): Float32Array<ArrayBuffer>;
@@ -0,0 +1,29 @@
1
+ import { Vec2, Vec3 } from '../types/common';
2
+ export declare function negateVec3(vec: Vec3): Vec3;
3
+ export declare function getVec3(buffer: number[], id: number): Vec3;
4
+ export declare function setVec3(buffer: number[], id: number, value: Vec3): void;
5
+ export declare function addVec3(v1: Vec3, v2: Vec3): Vec3;
6
+ export declare function subVec3(v1: Vec3, v2: Vec3): Vec3;
7
+ export declare function scaleVec3(vec: Vec3, factor: number): Vec3;
8
+ export declare function lengthVec3(vec: Vec3): number;
9
+ export declare function crossVec3(v1: Vec3, v2: Vec3): Vec3;
10
+ export declare function dotVec3(v1: Vec3, v2: Vec3): number;
11
+ export declare function normalizeVec3(v: Vec3): Vec3;
12
+ export declare function mixVec3(v1: Vec3, v2: Vec3, t?: number): Vec3;
13
+ export declare function copyVec3(vec: Vec3): Vec3;
14
+ export declare function angleVec3(v1: Vec3, v2: Vec3): number;
15
+ export declare function rotateVec3(vector: Vec3, axis?: Vec3, angle?: number): Vec3;
16
+ export declare function directionVec3(v1: Vec3, v2: Vec3): Vec3;
17
+ export declare function distanceVec3(v1: Vec3, v2: Vec3): number;
18
+ export declare function getVec2(buffer: number[], id: number): Vec2;
19
+ export declare function setVec2(buffer: number[], id: number, value: Vec2): void;
20
+ export declare function normalizeVec2(v: Vec2): Vec2;
21
+ export declare function addVec2(v1: Vec2, v2: Vec2): Vec2;
22
+ export declare function subVec2(v1: Vec2, v2: Vec2): Vec2;
23
+ export declare function dotVec2(v1: Vec2, v2: Vec2): number;
24
+ export declare function negateVec2(vec: Vec2): Vec2;
25
+ export declare function scaleVec2(vec: Vec2, factor: number): Vec2;
26
+ export declare function lengthVec2(vec: Vec2): number;
27
+ export declare function mixVec2(v1: Vec2, v2: Vec2, t?: number): Vec2;
28
+ export declare function directionVec2(v1: Vec2, v2: Vec2): Vec2;
29
+ export declare function distanceVec2(v1: Vec2, v2: Vec2): number;
package/package.json ADDED
@@ -0,0 +1,127 @@
1
+ {
2
+ "name": "@equinor/videx-3d",
3
+ "version": "5.1.0-beta",
4
+ "private": false,
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "description": "React 3D component library designed for sub surface visualizations in the browser",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/equinor/videx-3d.git"
11
+ },
12
+ "keywords": [
13
+ "3d",
14
+ "React",
15
+ "threejs",
16
+ "Subsurface",
17
+ "visualization"
18
+ ],
19
+ "files": [
20
+ "dist"
21
+ ],
22
+ "engines": {
23
+ "npm": "^11.7.0"
24
+ },
25
+ "exports": {
26
+ ".": {
27
+ "import": "./dist/main.js",
28
+ "types": "./dist/types/main.d.ts"
29
+ },
30
+ "./sdk": {
31
+ "import": "./dist/sdk.js",
32
+ "types": "./dist/types/sdk/index.d.ts"
33
+ },
34
+ "./generators": {
35
+ "import": "./dist/generators.js",
36
+ "types": "./dist/types/generators/index.d.ts"
37
+ }
38
+ },
39
+ "scripts": {
40
+ "start": "npm run storybook",
41
+ "build": "npm run build-lib && npm run build-static",
42
+ "build-lib": "tsc && vite build",
43
+ "build-static": "node scripts/generate-story-args.js && storybook build -o static && typedoc",
44
+ "lint": "eslint .",
45
+ "storybook": "node scripts/generate-story-args.js && storybook dev -p 6006",
46
+ "test": "vitest",
47
+ "coverage": "vitest --coverage"
48
+ },
49
+ "dependencies": {
50
+ "curve-interpolator": "^3.3.1",
51
+ "d3-array": "^3.2.4",
52
+ "d3-axis": "^3.0.0",
53
+ "d3-drag": "^3.0.0",
54
+ "d3-format": "^3.1.2",
55
+ "d3-interpolate": "^3.0.1",
56
+ "d3-path": "^3.1.0",
57
+ "d3-scale": "^4.0.2",
58
+ "d3-selection": "^3.0.0",
59
+ "lodash.filter": "^4.6.0",
60
+ "nanoid": "^5.1.2",
61
+ "p-limit": "^6.2.0",
62
+ "p-queue": "^8.1.0",
63
+ "proj4": "^2.20.3",
64
+ "rbush": "^4.0.1",
65
+ "react-use-measure": "^2.1.7",
66
+ "use-zustand": "^0.2.0",
67
+ "zustand": "^5.0.3"
68
+ },
69
+ "devDependencies": {
70
+ "@chromatic-com/storybook": "^5.0.1",
71
+ "@eslint/js": "^9.39.3",
72
+ "@react-three/drei": "^10.7.7",
73
+ "@react-three/fiber": "^9.5.0",
74
+ "@storybook/addon-docs": "^10.2.13",
75
+ "@storybook/react-vite": "^10.2.13",
76
+ "@types/d3-array": "^3.2.1",
77
+ "@types/d3-axis": "^3.0.6",
78
+ "@types/d3-drag": "^3.0.7",
79
+ "@types/d3-format": "^3.0.4",
80
+ "@types/d3-interpolate": "^3.0.4",
81
+ "@types/d3-path": "^3.1.0",
82
+ "@types/d3-scale": "^4.0.8",
83
+ "@types/d3-selection": "^3.0.11",
84
+ "@types/lodash.filter": "^4.6.9",
85
+ "@types/node": "^22.19.13",
86
+ "@types/proj4": "^2.5.5",
87
+ "@types/rbush": "^3.0.3",
88
+ "@types/react": "^19.2.14",
89
+ "@types/react-dom": "^19.0.4",
90
+ "@typescript-eslint/eslint-plugin": "^8.56.1",
91
+ "@typescript-eslint/parser": "8.56.1",
92
+ "@vitejs/plugin-react": "^5.1.4",
93
+ "@vitest/coverage-v8": "^4.0.18",
94
+ "@vitest/ui": "^4.0.18",
95
+ "eslint": "^9.39.3",
96
+ "eslint-plugin-react-hooks": "^7.0.1",
97
+ "eslint-plugin-react-refresh": "^0.5.2",
98
+ "eslint-plugin-storybook": "^10.2.13",
99
+ "globals": "^17.4.0",
100
+ "lodash": "^4.17.23",
101
+ "minimist": "^1.2.8",
102
+ "prettier": "^3.8.1",
103
+ "react": "^19.2.4",
104
+ "react-dom": "^19.2.4",
105
+ "rimraf": "^6.1.3",
106
+ "sass": "^1.97.3",
107
+ "storybook": "^10.2.13",
108
+ "typedoc": "^0.28.17",
109
+ "typescript": "^5.9.3",
110
+ "typescript-eslint": "^8.56.1",
111
+ "unplugin-dts": "^1.0.0-beta.6",
112
+ "vite": "^7.3.1",
113
+ "vite-plugin-css-injected-by-js": "^4.0.1",
114
+ "vite-plugin-externalize-deps": "^0.10.0",
115
+ "vite-plugin-glsl": "^1.5.5",
116
+ "vite-plugin-static-copy": "^3.2.0",
117
+ "vitest": "^4.0.18"
118
+ },
119
+ "peerDependencies": {
120
+ "@react-three/drei": ">=9",
121
+ "@react-three/fiber": ">=8",
122
+ "comlink": ">=4.4",
123
+ "react": ">=18",
124
+ "react-dom": ">=18",
125
+ "three": ">=0.179"
126
+ }
127
+ }