OpendTect  6.3
seis2dlineio.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: June 2004
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "seistrctr.h"
14 #include "executor.h"
15 #include "uistring.h"
16 
17 class SeisTrc;
18 class SeisTrcBuf;
19 namespace PosInfo { class Line2DData; }
20 namespace Seis { class SelData; }
21 
22 
26 { isTranslatorGroup(SeisTrc2D);
28 public:
30 
31  static const char* sKeyDefault() { return "2D Cube"; }
32  const char* getSurveyDefaultKey(const IOObj*) const;
33 };
34 
35 
39 { mODTextTranslationClass(Seis2DLinePutter);
40 public:
41 
42  virtual ~Seis2DLinePutter() {}
43 
44  virtual bool put(const SeisTrc&) = 0;
46  virtual bool close() = 0;
48  virtual uiString errMsg() const = 0;
50  virtual int nrWritten() const = 0;
51 
52 };
53 
54 
59 public:
60  Seis2DLineGetter(SeisTrcBuf&,int trcsperstep,
61  const Seis::SelData*);
62  virtual ~Seis2DLineGetter();
63 
64  uiString message() const { return msg_; }
65  uiString nrDoneText() const { return tr("Traces read"); }
66 
67  virtual od_int64 nrDone() const = 0;
68  virtual od_int64 totalNr() const = 0;
69 
70  virtual const SeisTrcTranslator* translator() const { return 0; }
71 
72 protected:
73 
74  virtual int nextStep() = 0;
75 
79 
80 };
81 
82 
86 { mODTextTranslationClass(Seis2DTraceGetter);
87 public:
88 
91 
92  virtual ~Seis2DTraceGetter();
93 
94  const IOObj& ioobj() const { return ioobj_; }
95  Pos::GeomID geomID() const { return geomid_; }
96 
97  uiRetVal get(TrcNrType,SeisTrc&) const;
98  uiRetVal getNext(SeisTrc&) const;
99 
100 protected:
101 
102  Seis2DTraceGetter(const IOObj&,Pos::GeomID,
103  const Seis::SelData*);
104 
105  virtual void mkTranslator() const = 0;
106 
110  mutable LineNrType linenrfortr_;
113 
114  bool ensureTranslator() const;
115  void ensureCorrectTrcKey(SeisTrc&) const;
116  LineNrType lineNr() const { return geomid_; }
117  void setErrMsgForNoTrMade() const;
118 
119 };
120 
121 
126 { mODTextTranslationClass(Seis2DLineIOProvider);
127 public:
128 
130 
131  virtual bool isEmpty(const IOObj&,Pos::GeomID) const = 0;
132  virtual uiRetVal getGeomIDs(const IOObj&,TypeSet<Pos::GeomID>&) const
133  = 0;
134  virtual uiRetVal getGeometry(const IOObj&,Pos::GeomID,
135  PosInfo::Line2DData&) const = 0;
136 
137  virtual Seis2DTraceGetter* getTraceGetter(const IOObj&,Pos::GeomID,
138  const Seis::SelData*,uiRetVal&) = 0;
139  virtual Executor* getLineGetter(const IOObj&,Pos::GeomID,
140  SeisTrcBuf&,const Seis::SelData*,
141  uiRetVal&,int trcsperfetch=16) = 0;
142  virtual Seis2DLinePutter* getPutter(const IOObj&,Pos::GeomID,
143  uiRetVal&) = 0;
144 
145  virtual bool getTxtInfo(const IOObj&,Pos::GeomID,BufferString&,
146  BufferString&) const { return false;}
148  StepInterval<float>&) const { return false;}
149 
150  virtual bool removeImpl(const IOObj&,Pos::GeomID) const = 0;
151  virtual bool renameImpl(const IOObj&,const char*) const = 0;
152 
153  const char* type() const { return type_.buf(); }
154 
155 protected:
156 
157  Seis2DLineIOProvider( const char* t )
158  : type_(t) {}
159 
161 
162 };
163 
164 
167 
168 
169 //------
171 
174 public:
175  TwoDSeisTrcTranslator( const char* s1, const char* s2 )
176  : SeisTrcTranslator(s1,s2) {}
177 
178  const char* defExtension() const { return "2ds"; }
179  bool implRemove(const IOObj*) const;
180  bool initRead_();
181  bool initWrite_(const SeisTrc&) { return false; }
182 
183  bool implRename( const IOObj*,const char*,
184  const CallBack* cb=0) const;
185 
186 };
187 
188 
193 public:
194  TwoDDataSeisTrcTranslator(const char* s1,const char* s2)
195  : SeisTrcTranslator(s1,s2) {}
196 
197 };
198 
199 
203 public:
204  SeisTrc2DTranslator(const char* s1,const char* s2)
205  : SeisTrcTranslator(s1,s2) {}
206 
207  bool initRead_();
208  bool initWrite_(const SeisTrc&) { return false; }
209 
210  bool isUserSelectable(bool) const { return true; }
211 
212  bool implRemove(const IOObj*) const;
213  bool implRename( const IOObj*,const char*,
214  const CallBack* cb=0) const;
215 
216 };
217 
218 
222  isTranslator(CBVS,SeisTrc2D)
223 public:
224  CBVSSeisTrc2DTranslator(const char* s1,const char* s2)
225  : SeisTrc2DTranslator(s1,s2) {}
226 
227  bool isUserSelectable(bool) const { return true; }
228 };
229 
233  isTranslator(SEGYDirect,SeisTrc2D)
234 public:
235  SEGYDirectSeisTrc2DTranslator(const char* s1,
236  const char* s2)
237  : SeisTrc2DTranslator(s1,s2) {}
238 
239  virtual bool isUserSelectable(bool fr) const { return fr; }
240  virtual const char* iconName() const { return "segy"; }
241 };
#define mExpClass(module)
Definition: commondefs.h:157
Seismics.
Definition: segydirectdef.h:20
uiString msg_
Definition: seis2dlineio.h:77
bool isUserSelectable(bool) const
Definition: seis2dlineio.h:227
IdxPair::IdxType LineNrType
Definition: seis2dlineio.h:90
Definition: ioobj.h:57
isTranslator(CBVS, SeisTrc2D) public
Definition: seis2dlineio.h:222
SeisTrcTranslator * tr_
Definition: seis2dlineio.h:112
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
#define mGlobal(module)
Definition: commondefs.h:160
#define od_int64
Definition: plftypes.h:34
CBVS translator for 2D Seismics.
Definition: seis2dlineio.h:220
Pos::GeomID geomID() const
Definition: seis2dlineio.h:95
uiString initmsg_
Definition: seis2dlineio.h:111
Position info for a 2D line.
Definition: posinfo2d.h:63
Definition: uistring.h:88
uiString nrDoneText() const
Definition: seis2dlineio.h:65
FixedString TwoD()
Definition: keystrs.h:136
isTranslator(TwoD, SeisTrc) public
Definition: seis2dlineio.h:173
IOObj & ioobj_
Definition: seis2dlineio.h:107
uiString message() const
Definition: seis2dlineio.h:64
SeisTrcBuf & tbuf_
Definition: seis2dlineio.h:76
virtual ~Seis2DLinePutter()
Definition: seis2dlineio.h:42
Set of pointers to objects.
Definition: commontypes.h:28
TranslatorGroup for 2D Seismic Data.
Definition: seis2dlineio.h:25
virtual ~Seis2DLineIOProvider()
Definition: seis2dlineio.h:129
Group of Translators. Has a static factory.
Definition: transl.h:54
bool isUserSelectable(bool) const
Definition: seis2dlineio.h:210
Definition: seistrctr.h:85
Translator mechanism is only used for selection etc.
Definition: seis2dlineio.h:172
interface for object that writes 2D seismic data
Definition: seis2dlineio.h:38
Dummy old translator used during conversion only.
Definition: seis2dlineio.h:190
Seis2DLineIOProvider(const char *t)
Definition: seis2dlineio.h:157
Provides access to 2D seismic line data.
Definition: seis2dlineio.h:85
const char * defExtension() const
Definition: seis2dlineio.h:178
Seis::SelData * seldata_
Definition: seis2dlineio.h:109
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:78
interface for object that reads entire or parts of entire 2D lines.
Definition: seis2dlineio.h:57
Index_Type GeomID
Definition: commontypes.h:48
Position info, often segmented.
Definition: posinfo.h:38
Provides read/write to/from 2D seismic lines. Only interesting if you want to add your own 2D data I/...
Definition: seis2dlineio.h:125
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
LineNrType lineNr() const
Definition: seis2dlineio.h:116
isTranslator(TwoDData, SeisTrc) public
Definition: seis2dlineio.h:192
bool isEmpty(const char *)
Index_Type IdxType
Definition: idxpair.h:32
Seismic trace.
Definition: seistrc.h:31
mDefEmptyTranslatorGroupConstructor(SeisTrc2D) static const char *sKeyDefault()
Definition: seis2dlineio.h:29
Definition: uistring.h:299
virtual bool getRanges(const IOObj &, Pos::GeomID, StepInterval< int > &, StepInterval< float > &) const
Definition: seis2dlineio.h:147
ObjectSet< Seis2DLineIOProvider > & S2DLIOPs()
Sort of factory. Add a new type via this function.
virtual bool isUserSelectable(bool fr) const
Definition: seis2dlineio.h:239
const BufferString type_
Definition: seis2dlineio.h:160
set of seismic traces.
Definition: seisbuf.h:28
const char * type() const
Definition: seis2dlineio.h:153
SeisTrc2DTranslator(const char *s1, const char *s2)
Definition: seis2dlineio.h:204
const Pos::GeomID geomid_
Definition: seis2dlineio.h:108
bool initWrite_(const SeisTrc &)
Definition: seis2dlineio.h:208
SEGYDirect translator for 2D Seismics.
Definition: seis2dlineio.h:231
const char * errMsg() const
Definition: horizontracker.h:59
Base translator for 2D Seismics.
Definition: seis2dlineio.h:201
const IOObj & ioobj() const
Definition: seis2dlineio.h:94
virtual bool getTxtInfo(const IOObj &, Pos::GeomID, BufferString &, BufferString &) const
Definition: seis2dlineio.h:145
#define isTranslatorGroup(clss)
In the class definition of a TranslatorGroup class.
Definition: transl.h:188
CallBacks object-oriented (object + method).
Definition: callback.h:62
Seis::SelData * seldata_
Definition: seis2dlineio.h:78
bool initWrite_(const SeisTrc &)
Definition: seis2dlineio.h:181
virtual const SeisTrcTranslator * translator() const
Definition: seis2dlineio.h:70
isTranslator(SEGYDirect, SeisTrc2D) public
Definition: seis2dlineio.h:233
Specification to enable chunkwise execution of a process.
Definition: executor.h:38
LineNrType linenrfortr_
Definition: seis2dlineio.h:110
IdxPair::IdxType TrcNrType
Definition: seis2dlineio.h:89
virtual const char * iconName() const
Definition: seis2dlineio.h:240

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