OpendTect-6_4  6.4
seis2dlineio.h
Go to the documentation of this file.
1 #ifndef seis2dlineio_h
2 #define seis2dlineio_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: A.H. Bril
9  Date: June 2004
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "seismod.h"
16 #include "seistrctr.h"
17 #include "executor.h"
18 #include "uistring.h"
19 
20 class Seis2DDataSet;
21 class SeisTrc;
22 class SeisTrcBuf;
23 namespace PosInfo { class Line2DData; }
24 namespace Seis { class SelData; }
25 
26 
30 { isTranslatorGroup(SeisTrc2D)
31 public:
33 
34  static const char* sKeyDefault() { return "2D Cube"; }
35  const char* getSurveyDefaultKey(const IOObj*) const;
36 };
37 
38 
42 { mODTextTranslationClass(Seis2DLinePutter);
43 public:
44  virtual ~Seis2DLinePutter() {}
45 
46  virtual bool put(const SeisTrc&) = 0;
48  virtual bool close() = 0;
50  virtual uiString errMsg() const = 0;
52  virtual int nrWritten() const = 0;
53  virtual void setComponentNames(const BufferStringSet&){};
54 
55 };
56 
57 
62 public:
63  Seis2DLineGetter(SeisTrcBuf&,int trcsperstep,
64  const Seis::SelData&);
65  virtual ~Seis2DLineGetter() {}
66 
67  uiString uiMessage() const { return msg_; }
68  uiString uiNrDoneText() const { return tr("Traces read"); }
69 
70  virtual od_int64 nrDone() const = 0;
71  virtual od_int64 totalNr() const = 0;
72 
73  virtual const SeisTrcTranslator* translator() const { return 0; }
74 
75 protected:
76 
77  virtual int nextStep() = 0;
78 
82 };
83 
88 { mODTextTranslationClass(Seis2DLineIOProvider);
89 public:
90 
91  virtual ~Seis2DLineIOProvider() {}
92 
93  virtual bool isEmpty(const IOObj&,Pos::GeomID) const = 0;
94  virtual bool getGeomIDs(const IOObj&,TypeSet<Pos::GeomID>&) const
95  = 0;
96  virtual bool getGeometry(const IOObj&,Pos::GeomID,
97  PosInfo::Line2DData&) const = 0;
98  virtual Executor* getFetcher(const IOObj&,Pos::GeomID,SeisTrcBuf&,int,
99  const Seis::SelData* sd=0) = 0;
100  virtual Seis2DLinePutter* getPutter(const IOObj&,Pos::GeomID) = 0;
101 
102  virtual bool getTxtInfo(const IOObj&,Pos::GeomID,BufferString&,
103  BufferString&) const { return false;}
105  StepInterval<float>&) const { return false;}
106 
107  virtual bool removeImpl(const IOObj&,Pos::GeomID) const = 0;
108  virtual bool renameImpl(const IOObj&,const char*) const = 0;
109 
110  const char* type() const { return type_.buf(); }
111 
112 protected:
113 
114  Seis2DLineIOProvider( const char* t )
115  : type_(t) {}
116 
118 };
119 
120 
123 
124 
125 //------
127 
130 public:
131  TwoDSeisTrcTranslator( const char* s1, const char* s2 )
132  : SeisTrcTranslator(s1,s2) {}
133 
134  const char* defExtension() const { return "2ds"; }
135  bool implRemove(const IOObj*) const;
136  bool initRead_();
137  bool initWrite_(const SeisTrc&) { return false; }
138 
139  bool implRename( const IOObj*,const char*,
140  const CallBack* cb=0) const;
141 
142 };
143 
144 
149 public:
150  TwoDDataSeisTrcTranslator(const char* s1,const char* s2)
151  : SeisTrcTranslator(s1,s2) {}
152 
153 };
154 
155 
159 public:
160  SeisTrc2DTranslator(const char* s1,const char* s2)
161  : SeisTrcTranslator(s1,s2)
162  , dataset_(0) {}
163 
164  bool initRead_();
165  bool initWrite_(const SeisTrc&) { return false; }
166 
167  bool isUserSelectable(bool) const { return true; }
168 
169  bool implRemove(const IOObj*) const;
170  bool implRename( const IOObj*,const char*,
171  const CallBack* cb=0) const;
172 
173  virtual bool getGeometryInfo(PosInfo::CubeData&) const;
174 
175  void setDataSet(const Seis2DDataSet&);
176 
177 protected:
178 
180 
181 };
182 
183 
187  isTranslator(CBVS,SeisTrc2D)
188 public:
189  CBVSSeisTrc2DTranslator(const char* s1,const char* s2)
190  : SeisTrc2DTranslator(s1,s2) {}
191 
192  bool isUserSelectable(bool) const { return true; }
193 };
194 
198  isTranslator(SEGYDirect,SeisTrc2D)
199 public:
200  SEGYDirectSeisTrc2DTranslator(const char* s1,
201  const char* s2)
202  : SeisTrc2DTranslator(s1,s2) {}
203 
204  virtual bool isUserSelectable(bool fr) const { return fr; }
205  virtual const char* iconName() const { return "segy"; }
206 };
207 
208 
209 #endif
#define mExpClass(module)
Definition: commondefs.h:160
Summary for a Seismic object.
Definition: segydirectdef.h:23
uiString msg_
Definition: seis2dlineio.h:80
bool isUserSelectable(bool) const
Definition: seis2dlineio.h:192
Definition: ioobj.h:58
isTranslator(CBVS, SeisTrc2D) public
Definition: seis2dlineio.h:187
virtual ~Seis2DLineGetter()
Definition: seis2dlineio.h:65
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
#define mGlobal(module)
Definition: commondefs.h:163
#define od_int64
Definition: plftypes.h:36
CBVS translator for 2D Seismics.
Definition: seis2dlineio.h:185
isTranslatorGroup(SeisTrc2D) public
Definition: seis2dlineio.h:30
Position info for a 2D line.
Definition: posinfo2d.h:65
Definition: uistring.h:89
FixedString TwoD()
Definition: keystrs.h:139
isTranslator(TwoD, SeisTrc) public
Definition: seis2dlineio.h:129
virtual void setComponentNames(const BufferStringSet &)
Definition: seis2dlineio.h:53
Set of BufferString objects.
Definition: bufstringset.h:28
SeisTrcBuf & tbuf_
Definition: seis2dlineio.h:79
virtual ~Seis2DLinePutter()
Definition: seis2dlineio.h:44
Set of pointers to objects.
Definition: commontypes.h:32
#define mDefEmptyTranslatorGroupConstructor(clss)
Definition: transl.h:255
TranslatorGroup for 2D Seismic Data.
Definition: seis2dlineio.h:29
virtual ~Seis2DLineIOProvider()
Definition: seis2dlineio.h:91
Group of Translators. Has a static factory.
Definition: transl.h:56
bool isUserSelectable(bool) const
Definition: seis2dlineio.h:167
const Seis2DDataSet * dataset_
Definition: seis2dlineio.h:179
Definition: seistrctr.h:90
Translator mechanism is only used for selection etc.
Definition: seis2dlineio.h:128
interface for object that writes 2D seismic data
Definition: seis2dlineio.h:41
uiString uiNrDoneText() const
will be nrDoneText() in 7.x
Definition: seis2dlineio.h:68
Dummy old translator used during conversion only.
Definition: seis2dlineio.h:146
Seis2DLineIOProvider(const char *t)
Definition: seis2dlineio.h:114
const char * defExtension() const
Definition: seis2dlineio.h:134
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:82
interface for object that reads 2D seismic data
Definition: seis2dlineio.h:60
Index_Type GeomID
Definition: commontypes.h:52
Position info, often segmented.
Definition: posinfo.h:40
Provides read/write to/from 2D seismic lines. Only interesting if you want to add your own 2D data I/...
Definition: seis2dlineio.h:87
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
isTranslator(TwoDData, SeisTrc) public
Definition: seis2dlineio.h:148
Seismic trace.
Definition: seistrc.h:34
virtual bool getRanges(const IOObj &, Pos::GeomID, StepInterval< int > &, StepInterval< float > &) const
Definition: seis2dlineio.h:104
ObjectSet< Seis2DLineIOProvider > & S2DLIOPs()
Sort of factory. Add a new type via this function.
virtual bool isUserSelectable(bool fr) const
Definition: seis2dlineio.h:204
const BufferString type_
Definition: seis2dlineio.h:117
set of seismic traces.
Definition: seisbuf.h:31
const char * type() const
Definition: seis2dlineio.h:110
SeisTrc2DTranslator(const char *s1, const char *s2)
Definition: seis2dlineio.h:160
bool initWrite_(const SeisTrc &)
Definition: seis2dlineio.h:165
SEGYDirect translator for 2D Seismics.
Definition: seis2dlineio.h:196
const char * errMsg() const
Definition: horizontracker.h:61
Base translator for 2D Seismics.
Definition: seis2dlineio.h:157
uiString uiMessage() const
will be message() again in 7.x
Definition: seis2dlineio.h:67
bool isEmpty(const NLAModel *mdl)
virtual bool getTxtInfo(const IOObj &, Pos::GeomID, BufferString &, BufferString &) const
Definition: seis2dlineio.h:102
CallBacks object-oriented (object + method).
Definition: callback.h:57
Position info for an entire 3D cube. The LineData&#39;s are not sorted.
Definition: posinfo.h:95
Seis::SelData * seldata_
Definition: seis2dlineio.h:81
bool initWrite_(const SeisTrc &)
Definition: seis2dlineio.h:137
virtual const SeisTrcTranslator * translator() const
Definition: seis2dlineio.h:73
Set of 2D lines comparable with 3D seismic cube.
Definition: seis2ddata.h:37
isTranslator(SEGYDirect, SeisTrc2D) public
Definition: seis2dlineio.h:198
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
virtual const char * iconName() const
Definition: seis2dlineio.h:205

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