OpendTect  6.3
seisfetcher.h
Go to the documentation of this file.
1 /*+
2 ________________________________________________________________________
3 
4  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
5  Author: Bert
6  Date: Nov 2016
7 ________________________________________________________________________
8 
9 -*/
10 
11 #include "seistrc.h"
12 #include "trckeyzsampling.h"
13 class IOObj;
14 class Seis2DDataSet;
15 namespace PosInfo { class Line2DData; class Line2DDataIterator; }
16 
17 
18 namespace Seis
19 {
20 
21 class Provider;
22 class Provider2D;
23 class Provider3D;
24 
25 /*\brief Gets required traces from either DataPack or Storage
26 
27  The fetcher should transparently access the DataPack or the storage.
28  There is no glue-ing going on in the Z direction. If the DataPack cannot
29  satisfy the Z range requirements, then it will not be used.
30 
31  */
32 
33 class Fetcher
35 public:
36 
37  Fetcher(Provider&);
38  virtual ~Fetcher();
39 
40  virtual void reset();
41  bool fillIOObj();
42  IOObj* getIOObj() const;
43 
46  mutable uiRetVal uirv_;
47 
48 };
49 
50 
51 /*\brief Fetcher for 3D data. */
52 
53 class Fetcher3D : public Fetcher
55 public:
56 
57  Fetcher3D( Provider& p ) : Fetcher(p) {}
58 
59  void getReqCS();
60 
61  Provider3D& prov3D();
62  const Provider3D& prov3D() const;
63 
64  bool isSelectedBinID(const BinID&) const;
65  bool moveNextBinID();
66 
69 
70  virtual void reset();
71  virtual TrcKeyZSampling getDefaultCS() const;
72 
73  bool gtRanges(TrcKeyZSampling&) const;
74 
75  virtual void doFillPar(IOPar&,uiRetVal&) const;
76  virtual void doUsePar(const IOPar&,uiRetVal&);
77 
78 };
79 
80 
81 /*\brief Fetcher for 2D data. */
82 
83 class Fetcher2D : public Fetcher
85 public:
86 
88  : Fetcher(p)
89  , dataset_(0)
90  , iter_(0)
91  , curlidx_(-1) {}
92  ~Fetcher2D();
93 
94  Provider2D& prov2D();
95  const Provider2D& prov2D() const;
96 
97  bool isSelectedBinID(const BinID&) const;
98  bool moveNextBinID();
99 
100  void openDataSet();
101  bool toNextLine();
102  int lineIdxFor(Pos::GeomID) const;
103  Pos::GeomID curGeomID() const;
104 
107  int curlidx_;
108 
109  virtual void reset();
110 
111  Seis2DDataSet* mkDataSet() const;
112 
113  uiRetVal gtComponentInfo(BufferStringSet&,
114  TypeSet<Seis::DataType>&) const;
115  int gtNrLines() const;
116  Pos::GeomID gtGeomID(int) const;
117  BufferString gtLineName(int) const;
118  int gtLineNr(Pos::GeomID) const;
119  void gtGeometryInfo(int,PosInfo::Line2DData&) const;
120  bool gtRanges(int,StepInterval<int>&,ZSampling&) const;
121 
122  virtual void doFillPar(IOPar&,uiRetVal&) const;
123  virtual void doUsePar(const IOPar&,uiRetVal&);
124 
127 
128 };
129 
130 
131 #define mIsSingleLine(sd) (sd && !mIsUdfGeomID(sd->geomID()))
132 
133 
134 
135 } // namespace Seis
Seismics.
Definition: segydirectdef.h:20
Definition: seisfetcher.h:83
Definition: ioobj.h:57
is the access point for seismic traces. Instantiate a subclass and ask for what you need...
Definition: seisprovider.h:54
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
TrcKey nexttrcky_
Definition: seisfetcher.h:106
uiRetVal uirv_
Definition: seisfetcher.h:46
IOObj * ioobj_
Definition: seisfetcher.h:45
Position info for a 2D line.
Definition: posinfo2d.h:63
Set of BufferString objects.
Definition: bufstringset.h:25
base class for Providers for 2D data. Extends Provider with some 2D specific services.
Definition: seisprovider.h:195
FixedString Provider()
Definition: keystrs.h:103
Fetcher2D(Provider &p)
Definition: seisfetcher.h:87
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
Definition: seisfetcher.h:53
TrcKeyZSampling reqcs_
Definition: seisfetcher.h:67
Iterates through Line2DData.
Definition: posinfo2d.h:131
Index_Type GeomID
Definition: commontypes.h:48
ObjectSet< PosInfo::Line2DData > line2ddata_
Definition: seisfetcher.h:126
PosInfo::Line2DDataIterator * iter_
Definition: seisfetcher.h:125
Position info, often segmented.
Definition: posinfo.h:38
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
Definition: uistring.h:299
Seis2DDataSet * dataset_
Definition: seisfetcher.h:105
Fetcher3D(Provider &p)
Definition: seisfetcher.h:57
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:26
Provider & prov_
Definition: seisfetcher.h:44
Definition: seisfetcher.h:33
base class for Providers for 3D data. Extends Provider with some 3D specific services.
Definition: seisprovider.h:168
BinID nextbid_
Definition: seisfetcher.h:68
Set of 2D lines comparable with 3D seismic cube.
Definition: seis2ddata.h:36
int curlidx_
Definition: seisfetcher.h:107

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017