OpendTect  6.6
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  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "seismod.h"
15 #include "seistrctr.h"
16 #include "executor.h"
17 #include "uistring.h"
18 
19 class Seis2DDataSet;
20 class SeisTrc;
21 class SeisTrcBuf;
22 namespace PosInfo { class Line2DData; }
23 namespace Seis { class SelData; }
24 
25 
29 { isTranslatorGroup(SeisTrc2D)
30 public:
32 
33  static const char* sKeyDefault() { return "2D Cube"; }
34  const char* getSurveyDefaultKey(const IOObj*) const;
35 };
36 
37 
42 public:
43  virtual ~Seis2DLinePutter() {}
44 
45  virtual bool put(const SeisTrc&) = 0;
47  virtual bool close() = 0;
49  virtual uiString errMsg() const = 0;
51  virtual int nrWritten() const = 0;
52  virtual void setComponentNames(const BufferStringSet&){};
53 
54 };
55 
56 
61 public:
62  Seis2DLineGetter(SeisTrcBuf&,int trcsperstep,
63  const Seis::SelData&);
64  virtual ~Seis2DLineGetter() {}
65 
66  uiString uiMessage() const { return msg_; }
67  uiString uiNrDoneText() const { return tr("Traces read"); }
68 
70  bool get(int trcnr,SeisTrc&) const;
71  bool get(int trcnr,TraceData&,SeisTrcInfo*) const;
72 
73  virtual od_int64 nrDone() const = 0;
74  virtual od_int64 totalNr() const = 0;
75 
76  virtual const SeisTrcTranslator* translator() const { return 0; }
77 
78 protected:
79 
80  virtual int nextStep() = 0;
81 
85 };
86 
92 public:
93 
94  virtual ~Seis2DLineIOProvider() {}
95 
96  virtual bool isEmpty(const IOObj&,Pos::GeomID) const = 0;
97  virtual bool getGeomIDs(const IOObj&,TypeSet<Pos::GeomID>&) const
98  = 0;
99  virtual bool getGeometry(const IOObj&,Pos::GeomID,
100  PosInfo::Line2DData&) const = 0;
102  const Seis::SelData* sd=0) = 0;
104 
105  virtual bool getTxtInfo(const IOObj&,Pos::GeomID,BufferString&,
106  BufferString&) const { return false;}
108  StepInterval<float>&) const { return false;}
109 
110  virtual bool removeImpl(const IOObj&,Pos::GeomID) const = 0;
111  virtual bool renameImpl(const IOObj&,const char*) const = 0;
112 
113  const char* type() const { return type_.buf(); }
114 
115 protected:
116 
117  Seis2DLineIOProvider( const char* t )
118  : type_(t) {}
119 
121 };
122 
123 
126 
127 
128 //------
130 
133 public:
134  TwoDSeisTrcTranslator( const char* s1, const char* s2 )
135  : SeisTrcTranslator(s1,s2) {}
136 
137  const char* defExtension() const { return "2ds"; }
138  bool implRemove(const IOObj*) const;
139  bool initRead_();
140  bool initWrite_(const SeisTrc&) { return false; }
141 
142  bool implRename( const IOObj*,const char*,
143  const CallBack* cb=0) const;
144 
145 };
146 
147 
152 public:
153  TwoDDataSeisTrcTranslator(const char* s1,const char* s2)
154  : SeisTrcTranslator(s1,s2) {}
155 
156 };
157 
158 
162 public:
163  SeisTrc2DTranslator(const char* s1,const char* s2)
164  : SeisTrcTranslator(s1,s2)
165  , dataset_(0) {}
166 
167  bool initRead_();
168  bool initWrite_(const SeisTrc&) { return false; }
169 
170  bool isUserSelectable(bool) const { return true; }
171 
172  bool implRemove(const IOObj*) const;
173  bool implRename( const IOObj*,const char*,
174  const CallBack* cb=0) const;
175 
176  virtual bool getGeometryInfo(PosInfo::CubeData&) const;
177 
178  void setDataSet(const Seis2DDataSet&);
179 
180 protected:
181 
183 
184 };
185 
186 
190  isTranslator(CBVS,SeisTrc2D)
191 public:
192  CBVSSeisTrc2DTranslator(const char* s1,const char* s2)
193  : SeisTrc2DTranslator(s1,s2) {}
194 
195  bool isUserSelectable(bool) const { return true; }
196 };
197 
201  isTranslator(SEGYDirect,SeisTrc2D)
202 public:
203  SEGYDirectSeisTrc2DTranslator(const char* s1,
204  const char* s2)
205  : SeisTrc2DTranslator(s1,s2) {}
206 
207  virtual bool isUserSelectable(bool fr) const { return fr; }
208  virtual const char* iconName() const { return "segy"; }
209 };
210 
211 
Seis2DLineGetter::geomID
Pos::GeomID geomID() const
PosInfo::CubeData
Position info for an entire 3D cube. The LineData's are not sorted.
Definition: posinfo.h:95
Seis2DLineIOProvider::type_
const BufferString type_
Definition: seis2dlineio.h:120
SeisTrc2DTranslatorGroup
TranslatorGroup for 2D Seismic Data.
Definition: seis2dlineio.h:29
Seis2DLineGetter::translator
virtual const SeisTrcTranslator * translator() const
Definition: seis2dlineio.h:76
CBVSSeisTrc2DTranslator::isTranslator
isTranslator(CBVS, SeisTrc2D) public
Definition: seis2dlineio.h:190
TraceData
A set of data buffers and their interpreters.
Definition: tracedata.h:32
SeisTrcInfo
Information for a seismic trace, AKA trace header info.
Definition: seisinfo.h:27
Seis2DLineGetter::Seis2DLineGetter
Seis2DLineGetter(SeisTrcBuf &, int trcsperstep, const Seis::SelData &)
uistring.h
SEGYDirectSeisTrc2DTranslator::isTranslator
isTranslator(SEGYDirect, SeisTrc2D) public
Definition: seis2dlineio.h:201
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
PosInfo::Line2DData
Position info for a 2D line.
Definition: posinfo2d.h:65
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
Seis2DLineGetter::uiNrDoneText
uiString uiNrDoneText() const
will be nrDoneText() in 7.x
Definition: seis2dlineio.h:67
Seis2DLineGetter::nrDone
virtual od_int64 nrDone() const =0
Seis2DLineIOProvider::isEmpty
virtual bool isEmpty(const IOObj &, Pos::GeomID) const =0
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
Seis2DLinePutter::close
virtual bool close()=0
Return null on success, err msg on failure.
Seis2DLinePutter::mODTextTranslationClass
mODTextTranslationClass(Seis2DLinePutter)
od_int64
#define od_int64
Definition: plftypes.h:35
SEGYDirectSeisTrc2DTranslator::mODTextTranslationClass
mODTextTranslationClass(SEGYDirectSeisTrc2DTranslator)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
SeisTrc2DTranslator::implRemove
bool implRemove(const IOObj *) const
Seis2DLineIOProvider::type
const char * type() const
Definition: seis2dlineio.h:113
S2DLIOPs
ObjectSet< Seis2DLineIOProvider > & S2DLIOPs()
Sort of factory. Add a new type via this function.
Seis2DLineIOProvider
Provides read/write to/from 2D seismic lines. Only interesting if you want to add your own 2D data I/...
Definition: seis2dlineio.h:91
SeisTrc
Seismic trace.
Definition: seistrc.h:34
isTranslator
#define isTranslator(spec, clss)
Definition: transl.h:244
Seis2DLineGetter::totalNr
virtual od_int64 totalNr() const =0
Seis2DLineIOProvider::removeImpl
virtual bool removeImpl(const IOObj &, Pos::GeomID) const =0
Seis2DLineGetter::seldata_
Seis::SelData * seldata_
Definition: seis2dlineio.h:84
TwoDSeisTrcTranslator::initWrite_
bool initWrite_(const SeisTrc &)
Definition: seis2dlineio.h:140
seistrctr.h
Seis2DLinePutter
interface for object that writes 2D seismic data
Definition: seis2dlineio.h:41
Seis2DLineIOProvider::getRanges
virtual bool getRanges(const IOObj &, Pos::GeomID, StepInterval< int > &, StepInterval< float > &) const
Definition: seis2dlineio.h:107
SeisTrc2DTranslator::initRead_
bool initRead_()
supporting getRanges()
CBVSSeisTrc2DTranslator::isUserSelectable
bool isUserSelectable(bool) const
Definition: seis2dlineio.h:195
SeisTrcBuf
set of seismic traces.
Definition: seisbuf.h:31
Seis2DLineIOProvider::~Seis2DLineIOProvider
virtual ~Seis2DLineIOProvider()
Definition: seis2dlineio.h:94
Seis2DLineIOProvider::getGeometry
virtual bool getGeometry(const IOObj &, Pos::GeomID, PosInfo::Line2DData &) const =0
Seis2DLineIOProvider::Seis2DLineIOProvider
Seis2DLineIOProvider(const char *t)
Definition: seis2dlineio.h:117
SeisTrc2DTranslator::implRename
bool implRename(const IOObj *, const char *, const CallBack *cb=0) const
SeisTrc2DTranslator::isUserSelectable
bool isUserSelectable(bool) const
Definition: seis2dlineio.h:170
StepInterval< int >
Seis2DLineGetter::~Seis2DLineGetter
virtual ~Seis2DLineGetter()
Definition: seis2dlineio.h:64
CallBack
CallBacks object-oriented (object + method).
Definition: callback.h:62
Seis2DLineIOProvider::getGeomIDs
virtual bool getGeomIDs(const IOObj &, TypeSet< Pos::GeomID > &) const =0
Seis2DLineGetter::get
bool get(int trcnr, TraceData &, SeisTrcInfo *) const
Seis2DLineGetter
interface for object that reads 2D seismic data
Definition: seis2dlineio.h:60
Seis2DLineGetter::uiMessage
uiString uiMessage() const
will be message() again in 7.x
Definition: seis2dlineio.h:66
Seis::SelData
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:82
SEGYDirectSeisTrc2DTranslator::iconName
virtual const char * iconName() const
Definition: seis2dlineio.h:208
Seis2DLineIOProvider::getTxtInfo
virtual bool getTxtInfo(const IOObj &, Pos::GeomID, BufferString &, BufferString &) const
Definition: seis2dlineio.h:105
Seis2DLineIOProvider::getPutter
virtual Seis2DLinePutter * getPutter(const IOObj &, Pos::GeomID)=0
TwoDSeisTrcTranslator::implRemove
bool implRemove(const IOObj *) const
SeisTrc2DTranslator::dataset_
const Seis2DDataSet * dataset_
Definition: seis2dlineio.h:182
Executor
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
CBVSSeisTrc2DTranslator
CBVS translator for 2D Seismics.
Definition: seis2dlineio.h:189
mDefEmptyTranslatorGroupConstructor
#define mDefEmptyTranslatorGroupConstructor(clss)
Definition: transl.h:269
TwoDDataSeisTrcTranslator
Dummy old translator used during conversion only.
Definition: seis2dlineio.h:150
Seis2DLineGetter::msg_
uiString msg_
Definition: seis2dlineio.h:83
IOObj
Definition: ioobj.h:58
Seis2DLinePutter::nrWritten
virtual int nrWritten() const =0
SeisTrc2DTranslator
Base translator for 2D Seismics.
Definition: seis2dlineio.h:161
SeisTrcTranslator
Definition: seistrctr.h:90
Seis2DLineIOProvider::renameImpl
virtual bool renameImpl(const IOObj &, const char *) const =0
TranslatorGroup
Group of Translators. Has a static factory.
Definition: transl.h:56
executor.h
Seis2DLineGetter::get
bool get(int trcnr, SeisTrc &) const
CBVSSeisTrc2DTranslator::mODTextTranslationClass
mODTextTranslationClass(CBVSSeisTrc2DTranslator)
SEGYDirectSeisTrc2DTranslator::isUserSelectable
virtual bool isUserSelectable(bool fr) const
Definition: seis2dlineio.h:207
Seis2DDataSet
Set of 2D lines comparable with 3D seismic cube.
Definition: seis2ddata.h:37
TwoDDataSeisTrcTranslator::isTranslator
isTranslator(TwoDData, SeisTrc) public
Definition: seis2dlineio.h:151
Seis2DLineIOProvider::getFetcher
virtual Executor * getFetcher(const IOObj &, Pos::GeomID, SeisTrcBuf &, int, const Seis::SelData *sd=0)=0
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
SeisTrc2DTranslatorGroup::isTranslatorGroup
isTranslatorGroup(SeisTrc2D) public
Definition: seis2dlineio.h:29
Seis2DLinePutter::put
virtual bool put(const SeisTrc &)=0
Return fase on success, err msg on failure.
SEGYDirectSeisTrc2DTranslator
SEGYDirect translator for 2D Seismics.
Definition: seis2dlineio.h:200
Seis2DLineGetter::nextStep
virtual int nextStep()=0
SeisTrc2DTranslator::setDataSet
void setDataSet(const Seis2DDataSet &)
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
PosInfo
Position info, often segmented.
Definition: posinfo.h:40
Seis2DLinePutter::errMsg
virtual uiString errMsg() const =0
Only when put or close returns false.
TwoDDataSeisTrcTranslator::mODTextTranslationClass
mODTextTranslationClass(TwoDDataSeisTrcTranslator)
TwoDSeisTrcTranslator
Translator mechanism is only used for selection etc.
Definition: seis2dlineio.h:132
SeisTrc2DTranslatorGroup::getSurveyDefaultKey
const char * getSurveyDefaultKey(const IOObj *) const
SeisTrc2DTranslator::SeisTrc2DTranslator
SeisTrc2DTranslator(const char *s1, const char *s2)
Definition: seis2dlineio.h:163
Seis2DLineGetter::mODTextTranslationClass
mODTextTranslationClass(Seis2DLineGetter)
Seis2DLinePutter::~Seis2DLinePutter
virtual ~Seis2DLinePutter()
Definition: seis2dlineio.h:43
Seis2DLineIOProvider::mODTextTranslationClass
mODTextTranslationClass(Seis2DLineIOProvider)
sKey::TwoD
FixedString TwoD()
Definition: keystrs.h:172
Seis2DLineGetter::tbuf_
SeisTrcBuf & tbuf_
Definition: seis2dlineio.h:82
TwoDSeisTrcTranslator::implRename
bool implRename(const IOObj *, const char *, const CallBack *cb=0) const
TwoDSeisTrcTranslator::initRead_
bool initRead_()
supporting getRanges()
TwoDSeisTrcTranslator::mODTextTranslationClass
mODTextTranslationClass(TwoDSeisTrcTranslator)
Seis2DLinePutter::setComponentNames
virtual void setComponentNames(const BufferStringSet &)
Definition: seis2dlineio.h:52
SeisTrc2DTranslator::getGeometryInfo
virtual bool getGeometryInfo(PosInfo::CubeData &) const
SeisTrc2DTranslator::mODTextTranslationClass
mODTextTranslationClass(SeisTrc2DTranslator)
SeisTrc2DTranslator::initWrite_
bool initWrite_(const SeisTrc &)
Definition: seis2dlineio.h:168
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
TypeSet< Pos::GeomID >
TwoDSeisTrcTranslator::defExtension
const char * defExtension() const
Definition: seis2dlineio.h:137

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