OpendTect  6.3
seismscprov.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: A.H. Bril
8  Date: Jan 2007
9 ________________________________________________________________________
10 
11 */
12 
13 
14 #include "seiscommon.h"
15 #include "arraynd.h"
16 #include "rowcol.h"
17 #include "objectset.h"
18 #include "uistring.h"
19 
20 template <class T> class Array2D;
21 class IOObj;
22 class SeisTrc;
23 class SeisTrcBuf;
24 
25 
26 namespace Seis
27 {
28 
29 class SelData;
30 class Provider;
31 
32 
57 public:
58 
59  MSCProvider(const DBKey&);
61  virtual ~MSCProvider();
62 
63  bool is2D() const;
64  BufferString name() const; // cube name
65 
66  // use the following after prepareWork
67  // but before the first next()
68  void forceFloatData( bool yn )
69  { intofloats_ = yn; }
70  void setStepout(int,int,bool required);
71  void setStepout(Array2D<bool>* mask);
73  void setStepoutStep( int i, int c )
74  { stepoutstep_.row() = i; stepoutstep_.col() = c; }
75  int inlStepout( bool req ) const
76  { return req ? reqstepout_.row() : desstepout_.row(); }
77  int crlStepout( bool req ) const
78  { return req ? reqstepout_.col() : desstepout_.col(); }
79  void setSelData(Seis::SelData*);
81 
82  enum AdvanceState { NewPosition, Buffering, EndReached, Error };
83  AdvanceState advance();
84  uiString errMsg() const { return uirv_; }
85 
86  BinID getPos() const;
87  int getTrcNr() const;
88  SeisTrc* get(int deltainl,int deltacrl);
89  SeisTrc* get(const BinID&);
90  const SeisTrc* get( int i, int c ) const
91  { return const_cast<MSCProvider*>(this)->get(i,c); }
92  const SeisTrc* get( const BinID& bid ) const
93  { return const_cast<MSCProvider*>(this)->get(bid); }
94 
95  int comparePos(const MSCProvider&) const;
97  int estimatedNrTraces() const;
98 
99  Provider* provider() { return prov_; }
100  const Provider* provider() const { return prov_; }
101 
102 protected:
103 
112  bool atend_;
113 
116  mutable int estnrtrcs_;
117 
118  // Indexes of new pos ready, equals -1 while buffering.
119  int bufidx_;
120  int trcidx_;
121  // Indexes of next position to be examined.
124 
125  bool startWork();
126  bool readTrace(SeisTrc&);
127  bool isReqBoxFilled() const;
128  bool doAdvance();
129 
130 };
131 
132 } // namespace Seis
133 
#define mExpClass(module)
Definition: commondefs.h:157
Seismics.
Definition: segydirectdef.h:20
Definition: ioobj.h:57
bool workstarted_
Definition: seismscprov.h:111
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
int estnrtrcs_
Definition: seismscprov.h:116
Reads seismic data into buffers providing a Moving Virtual Subcube of seismic data.
Definition: seismscprov.h:55
bool is2D(GeomType gt)
Definition: seistype.h:32
const Provider * provider() const
Definition: seismscprov.h:100
uiString errMsg() const
Definition: seismscprov.h:84
int curlinenr_
Definition: seismscprov.h:115
ObjectSet< SeisTrcBuf > tbufs_
Definition: seismscprov.h:105
uiRetVal uirv_
Definition: seismscprov.h:114
Definition: uistring.h:88
Provider * provider()
Definition: seismscprov.h:99
RowCol stepoutstep_
Definition: seismscprov.h:108
mDeprecated typedef Seis::MSCProvider SeisMSCProvider
Definition: seismscprov.h:134
int trcidx_
Definition: seismscprov.h:120
bool atend_
Definition: seismscprov.h:112
FixedString Provider()
Definition: keystrs.h:103
AdvanceState
Definition: seismscprov.h:82
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:127
void setStepoutStep(int i, int c)
Definition: seismscprov.h:73
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:78
Array2D< bool > * reqmask_
Definition: seismscprov.h:109
int bufidx_
Definition: seismscprov.h:119
IdxPair used for its row() and col().
Definition: rowcol.h:23
bool intofloats_
Definition: seismscprov.h:110
#define mDeprecated
Definition: plfdefs.h:213
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
Seismic trace.
Definition: seistrc.h:31
Definition: uistring.h:299
RowCol reqstepout_
Definition: seismscprov.h:106
set of seismic traces.
Definition: seisbuf.h:28
Provider * prov_
Definition: seismscprov.h:104
Definition: seismscprov.h:82
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
void forceFloatData(bool yn)
Definition: seismscprov.h:68
int crlStepout(bool req) const
Definition: seismscprov.h:77
int inlStepout(bool req) const
Definition: seismscprov.h:75
int pivotidx_
Definition: seismscprov.h:122
RowCol desstepout_
Definition: seismscprov.h:107
int pivotidy_
Definition: seismscprov.h:123

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