OpendTect  6.6
uisegydef.h
Go to the documentation of this file.
1 #pragma once
2 /*+
3 ________________________________________________________________________
4 
5  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
6  Author: Bert
7  Date: Sep 2008
8  RCS: $Id$
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uisegycommon.h"
14 #include "uigroup.h"
15 #include "uisegyread.h"
16 #include "segyfiledef.h"
17 #include "uistring.h"
18 #include "coordsystem.h"
19 
20 class IOObj;
21 namespace SEGY { class TrcHeaderDef; }
22 class uiLabel;
23 class uiButton;
24 class uiCheckBox;
25 class uiGenInput;
26 class uiTabStack;
27 class uiFileInput;
28 class uiSEGYByteSpec;
29 
30 
33 mExpClass(uiSEGYTools) uiSEGYDefGroup : public uiGroup
35 public:
36  uiSEGYDefGroup( uiParent* p, const char* grpnm,
37  bool forread )
38  : uiGroup(p,grpnm)
39  , forread_(forread) {}
40 
41  virtual bool fillPar(IOPar&,bool permissive=false) const = 0;
42  virtual void usePar(const IOPar&) = 0;
43  virtual void use(const IOObj*,bool force) = 0;
44 
45  virtual void getReport( IOPar& iop ) const
46  { fillPar( iop, true ); }
47 
48 protected:
49 
50  bool forread_;
51 };
52 
53 
58 public:
59  mExpClass(uiSEGYTools) Setup
60  {
61  public:
62  Setup( bool needmulti )
63  : forread_(true)
64  , canbe3d_(true)
65  , needmultifile_(needmulti)
66  , pars_(0) {}
67 
68  mDefSetupMemb(bool,forread)
69  mDefSetupMemb(bool,canbe3d)
70  mDefSetupMemb(bool,needmultifile)
71  mDefSetupMemb(const IOPar*,pars)
72  };
73 
75 
76  bool fillPar(IOPar&,bool permissive=false) const;
77  void usePar(const IOPar&);
78  void use(const IOObj*,bool force);
79  void setFileName(const char*);
80  BufferString getJobNameFromFileName() const;
81 
82  SEGY::FileSpec getSpec() const;
83  void setSpec(const SEGY::FileSpec&);
84 
85  void setInp2D(bool);
86  bool isProbablySwapped() const { return swpd_; }
87  bool isIEEEFmt() const { return isieee_; }
88  bool isProbablySeisWare() const { return issw_; }
89 
90  static const char* sKeyLineNmToken() { return "#L"; }
91  static const char* fileFilter()
92  { return "SEG-Y files (*.sgy *.SGY *.segy)"; }
93 
95 
96 protected:
97 
100  uiButton* manipbut_;
101  bool is2d_;
103  bool swpd_;
104  bool isieee_;
105  bool issw_;
106 
108 
111 
113 };
114 
115 
120 public:
121  uiSEGYFilePars(uiParent*,bool forread,IOPar* iop=0,
122  bool withiobuts=true);
123 
124  bool fillPar(IOPar&,bool permissive=false) const;
125  void usePar(const IOPar&);
126  void use(const IOObj*,bool force);
127 
128  FilePars getPars() const;
129  void setPars(const FilePars&);
130 
131  void setBytesSwapped(bool fullswap,bool dataswap=false);
133 
136 
137 protected:
138 
143 
146 
147 public:
148 
149  static uiString sRetSavedGrp() { return tr("Retrieve Saved Group"); }
150 
151 };
152 
153 
163 public:
164 
165  mExpClass(uiSEGYTools) Setup
166  {
167  public:
171  : geom_(gt)
172  , purpose_(pp)
173  , revtype_(rt) {}
174 
178  };
179 
180  uiSEGYFileOpts(uiParent*,const Setup&,const IOPar* i=0);
182 
183  const Setup& setup() const { return setup_; }
184  bool forScan() const
185  { return setup_.purpose_ != uiSEGYRead::Import; }
186 
187  bool fillPar(IOPar&,bool permissive=false) const;
188  void usePar(const IOPar&);
189  void getReport(IOPar&) const;
190  void use(const IOObj*,bool force);
191 
195 
196 protected:
197 
199  bool is2d_;
200  bool isps_;
202 
208 
211  uiSEGYByteSpec* inldeffld_;
212  uiSEGYByteSpec* crldeffld_;
213  uiSEGYByteSpec* trnrdeffld_;
214  uiSEGYByteSpec* refnrdeffld_;
215  uiSEGYByteSpec* offsdeffld_;
216  uiSEGYByteSpec* azimdeffld_;
217  uiSEGYByteSpec* xcoorddeffld_;
218  uiSEGYByteSpec* ycoorddeffld_;
227 
232 
237 
238  void mkBinIDFlds(uiGroup*,const IOPar&);
239  void mkCoordFlds(uiGroup*,const IOPar&);
240 
247 
248  int psPosType() const;
249  void toggledFldFillPar(uiGenInput*,const IOPar&,const char*,
250  bool isz=false);
251  void setToggled(IOPar&,const char*,uiGenInput*,
252  bool isz=false) const;
253 
254 public:
255  const uiString sPreScanFiles() { return tr("Pre-scan the files"); }
256 
257 };
258 
259 
uiSEGYFileOpts::setup_
Setup setup_
Definition: uisegydef.h:198
ConstRefMan< Coords::CoordSystem >
uiSEGYFileOpts::refnrdeffld_
uiSEGYByteSpec * refnrdeffld_
Definition: uisegydef.h:214
segyfiledef.h
uiSEGYFileSpec::is2d_
bool is2d_
Definition: uisegydef.h:101
uiSEGYFileSpec::isProbablySeisWare
bool isProbablySeisWare() const
Definition: uisegydef.h:88
uiSEGYFileOpts::setup
const Setup & setup() const
Definition: uisegydef.h:183
uiSEGYFileOpts::readcoordsfld_
uiGenInput * readcoordsfld_
Definition: uisegydef.h:220
uiSEGYFileOpts::Setup
Definition: uisegydef.h:166
uiSEGYFileOpts::forScan
bool forScan() const
Definition: uisegydef.h:184
uiTabStack
Definition: uitabstack.h:33
uiSEGYFilePars::nrsamplesfld_
uiGenInput * nrsamplesfld_
Definition: uisegydef.h:139
uiSEGYFilePars::readParsReq
Notifier< uiSEGYFilePars > readParsReq
Definition: uisegydef.h:134
uiSEGYFileOpts::sampleratefld_
uiGenInput * sampleratefld_
Definition: uisegydef.h:230
uiSEGYFileOpts::mODTextTranslationClass
mODTextTranslationClass(uiSEGYFileOpts)
uiSEGYFileOpts::preScanReq
Notifier< uiSEGYFileOpts > preScanReq
Definition: uisegydef.h:194
uiSEGYFileOpts::fillPar
bool fillPar(IOPar &, bool permissive=false) const
coordsystem.h
uistring.h
uiSEGYFileOpts::inldeffld_
uiSEGYByteSpec * inldeffld_
Definition: uisegydef.h:211
uiSEGYFileSpec::isieee_
bool isieee_
Definition: uisegydef.h:104
uiSEGYFileSpec::sKeyLineNmToken
static const char * sKeyLineNmToken()
Definition: uisegydef.h:90
FileSpec
Specification for one or more files.
Definition: filespec.h:28
uiSEGYRead::Rev0
@ Rev0
Definition: uisegyread.h:36
uiSEGYFileSpec::Setup
Definition: uisegydef.h:60
uiSEGYFileOpts::ensurepsxylbl_
uiLabel * ensurepsxylbl_
Definition: uisegydef.h:226
SEGY::FilePars
Definition: segyfiledef.h:55
uiSEGYFilePars::setPars
void setPars(const FilePars &)
uiSEGYFilePars::setBytesSwapped
void setBytesSwapped(bool fullswap, bool dataswap=false)
dataswap only used if fullswap is false
uiSEGYFilePars::writeParsReq
Notifier< uiSEGYFilePars > writeParsReq
Definition: uisegydef.h:135
uiSEGYFileOpts::writeParsReq
Notifier< uiSEGYFileOpts > writeParsReq
Definition: uisegydef.h:193
uiSEGYFilePars::fillPar
bool fillPar(IOPar &, bool permissive=false) const
uiSEGYDefGroup::getReport
virtual void getReport(IOPar &iop) const
Definition: uisegydef.h:45
uiSEGYFileOpts::coordgrp_
uiGroup * coordgrp_
Definition: uisegydef.h:207
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
uiSEGYFileSpec::isIEEEFmt
bool isIEEEFmt() const
Definition: uisegydef.h:87
uiSEGYDefGroup::usePar
virtual void usePar(const IOPar &)=0
uiCheckBox
Definition: uibutton.h:167
uiSEGYFileOpts::psPosChg
void psPosChg(CallBacker *)
uiSEGYFilePars::sRetSavedGrp
static uiString sRetSavedGrp()
Definition: uisegydef.h:149
uiSEGYFileOpts::preScanPush
void preScanPush(CallBacker *)
uiSEGYFilePars::writeParsPush
void writeParsPush(CallBacker *)
uiSEGYFileOpts::ycoorddeffld_
uiSEGYByteSpec * ycoorddeffld_
Definition: uisegydef.h:218
uiSEGYFileOpts::mkPSGrp
uiGroup * mkPSGrp(const IOPar &)
usePar
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
uiSEGYFileOpts::sPreScanFiles
const uiString sPreScanFiles()
Definition: uisegydef.h:255
uiSEGYFileOpts::use
void use(const IOObj *, bool force)
uiSEGYFileOpts::regoffsfld_
uiGenInput * regoffsfld_
Definition: uisegydef.h:219
uiSEGYFileOpts::coordsstartfld_
uiGenInput * coordsstartfld_
Definition: uisegydef.h:221
uiSEGYFileOpts::ts_
uiTabStack * ts_
Definition: uisegydef.h:203
mDefSetupMemb
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:154
uiSEGYFilePars::byteswapfld_
uiGenInput * byteswapfld_
Definition: uisegydef.h:141
uiSEGYFileOpts::coordsfnmfld_
uiFileInput * coordsfnmfld_
Definition: uisegydef.h:224
uisegycommon.h
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
uiSEGYFileOpts::initFlds
void initFlds(CallBacker *)
uiSEGYFileOpts::coordsstepfld_
uiGenInput * coordsstepfld_
Definition: uisegydef.h:222
uiSEGYFileSpec::Setup::Setup
Setup(bool needmulti)
Definition: uisegydef.h:62
uiSEGYFileOpts::mkCoordGrp
uiGroup * mkCoordGrp(const IOPar &)
uiSEGYDefGroup::fillPar
virtual bool fillPar(IOPar &, bool permissive=false) const =0
uiSEGYFileOpts::coordsextfld_
uiGenInput * coordsextfld_
Definition: uisegydef.h:223
uigroup.h
uiSEGYFileSpec::swpd_
bool swpd_
Definition: uisegydef.h:103
uiSEGYFilePars::fmtfld_
uiGenInput * fmtfld_
Definition: uisegydef.h:140
uiSEGYFileSpec::issw_
bool issw_
Definition: uisegydef.h:105
uiGenInput
General Input Element.
Definition: uigeninput.h:59
uiSEGYFileSpec::getFileName
BufferString getFileName() const
uiSEGYFileOpts::Setup::Setup
Setup(Seis::GeomType gt, uiSEGYRead::Purpose pp=uiSEGYRead::Import, uiSEGYRead::RevType rt=uiSEGYRead::Rev0)
Definition: uisegydef.h:168
uiSEGYFileOpts::mkCoordFlds
void mkCoordFlds(uiGroup *, const IOPar &)
uiSEGYFileSpec::fileSelected
Notifier< uiSEGYFileSpec > fileSelected
Definition: uisegydef.h:94
StepInterval< int >
uiSEGYFileSpec::multifld_
uiGenInput * multifld_
Definition: uisegydef.h:99
uiSEGYFileOpts::psPosType
int psPosType() const
uiSEGYFileOpts::trnrdeffld_
uiSEGYByteSpec * trnrdeffld_
Definition: uisegydef.h:213
uiSEGYFileOpts::psposfld_
uiGenInput * psposfld_
Definition: uisegydef.h:210
SEGY::TrcHeaderDef
stores HdrEntry info of the needed fields from the trace header.
Definition: segythdef.h:30
uiSEGYFileOpts::scalcofld_
uiGenInput * scalcofld_
Definition: uisegydef.h:228
uisegyread.h
uiGroup
Definition: uigroup.h:54
uiSEGYDefGroup::uiSEGYDefGroup
uiSEGYDefGroup(uiParent *p, const char *grpnm, bool forread)
Definition: uisegydef.h:36
uiFileInput
A file-name input.
Definition: uifileinput.h:34
uiSEGYFileSpec::fnmfld_
uiFileInput * fnmfld_
Definition: uisegydef.h:98
uiSEGYFileOpts::is2d_
bool is2d_
Definition: uisegydef.h:199
uiSEGYFileOpts::mkPosGrp
uiGroup * mkPosGrp(const IOPar &)
uiSEGYRead::RevType
RevType
Definition: uisegyread.h:36
uiSEGYFileOpts::uiSEGYFileOpts
uiSEGYFileOpts(uiParent *, const Setup &, const IOPar *i=0)
uiSEGYFileSpec::manipbut_
uiButton * manipbut_
Definition: uisegydef.h:100
uiSEGYFileOpts::toggledFldFillPar
void toggledFldFillPar(uiGenInput *, const IOPar &, const char *, bool isz=false)
uiSEGYFileOpts::havecoordsinhdrfld_
uiGenInput * havecoordsinhdrfld_
Definition: uisegydef.h:231
Notifier< uiSEGYFileSpec >
uiSEGYFileOpts::azimdeffld_
uiSEGYByteSpec * azimdeffld_
Definition: uisegydef.h:216
IOObj
Definition: ioobj.h:58
uiSEGYDefGroup::use
virtual void use(const IOObj *, bool force)=0
uiSEGYFileOpts::orulegrp_
uiGroup * orulegrp_
Definition: uisegydef.h:206
fillPar
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:174
uiSEGYFileOpts::readParsPush
void readParsPush(CallBacker *)
uiSEGYFileOpts::offsdeffld_
uiSEGYByteSpec * offsdeffld_
Definition: uisegydef.h:215
uiSEGYFileOpts::coordsspecfnmbox_
uiCheckBox * coordsspecfnmbox_
Definition: uisegydef.h:225
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
uiSEGYFilePars::readParsPush
void readParsPush(CallBacker *)
uiSEGYFileOpts::posfld_
uiGenInput * posfld_
Definition: uisegydef.h:209
uiSEGYFileSpec::fileFilter
static const char * fileFilter()
Definition: uisegydef.h:91
uiSEGYFilePars::getPars
FilePars getPars() const
uiSEGYFilePars::mODTextTranslationClass
mODTextTranslationClass(uiSEGYFilePars)
uiSEGYRead::Purpose
Purpose
Definition: uisegyread.h:35
uiSEGYFilePars::usePar
void usePar(const IOPar &)
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
uiSEGYFileOpts::isps_
bool isps_
Definition: uisegydef.h:200
uiSEGYFileOpts::mkORuleGrp
uiGroup * mkORuleGrp(const IOPar &)
uiSEGYFileOpts::xcoorddeffld_
uiSEGYByteSpec * xcoorddeffld_
Definition: uisegydef.h:217
uiSEGYDefGroup
base class for specification of SEG-Y file stuff
Definition: uisegydef.h:34
uiSEGYDefGroup::mODTextTranslationClass
mODTextTranslationClass(uiSEGYDefGroup)
uiSEGYFileOpts::usePar
void usePar(const IOPar &)
uiSEGYFileOpts::writeParsPush
void writeParsPush(CallBacker *)
uiSEGYFileOpts::~uiSEGYFileOpts
~uiSEGYFileOpts()
uiSEGYFileOpts::thdef_
SEGY::TrcHeaderDef & thdef_
Definition: uisegydef.h:201
SEGY
Keys that should be used with od_process_segyio.cc.
Definition: segybatchio.h:22
uiSEGYFileOpts
UI for Specification of SEG-Y fields needed for proper import.
Definition: uisegydef.h:162
uiSEGYDefGroup::forread_
bool forread_
Definition: uisegydef.h:50
uiLabel
Definition: uilabel.h:24
uiSEGYFileSpec::fileSel
void fileSel(CallBacker *)
uiSEGYFileOpts::readParsReq
Notifier< uiSEGYFileOpts > readParsReq
Definition: uisegydef.h:192
uiSEGYFilePars::use
void use(const IOObj *, bool force)
uiParent
Definition: uiparent.h:26
uiSEGYFilePars::coordsys_
ConstRefMan< Coords::CoordSystem > coordsys_
Definition: uisegydef.h:142
uiSEGYFileOpts::crldeffld_
uiSEGYByteSpec * crldeffld_
Definition: uisegydef.h:212
uiSEGYFileSpec
UI for Specification of SEG-Y in- or output file(s)
Definition: uisegydef.h:57
uiSEGYFileOpts::timeshiftfld_
uiGenInput * timeshiftfld_
Definition: uisegydef.h:229
uiSEGYFileOpts::getReport
void getReport(IOPar &) const
uiSEGYRead::Import
@ Import
Definition: uisegyread.h:35
uiSEGYFileOpts::psgrp_
uiGroup * psgrp_
Definition: uisegydef.h:205
uiSEGYFilePars
UI for Specification of SEG-Y information needed to examine.
Definition: uisegydef.h:119
uiSEGYFileSpec::needmulti_
bool needmulti_
Definition: uisegydef.h:102
Seis::GeomType
GeomType
Definition: seistype.h:32
uiSEGYFileOpts::setToggled
void setToggled(IOPar &, const char *, uiGenInput *, bool isz=false) const
uiSEGYFileSpec::setMultiInput
void setMultiInput(const StepInterval< int > &, int)
uiSEGYFilePars::uiSEGYFilePars
uiSEGYFilePars(uiParent *, bool forread, IOPar *iop=0, bool withiobuts=true)
uiSEGYFileOpts::mkBinIDFlds
void mkBinIDFlds(uiGroup *, const IOPar &)
uiSEGYFileSpec::manipFile
void manipFile(CallBacker *)
uiSEGYFileSpec::mODTextTranslationClass
mODTextTranslationClass(uiSEGYFileSpec)
uiSEGYFileSpec::Setup::mDefSetupMemb
mDefSetupMemb(bool, forread) mDefSetupMemb(bool
uiSEGYFileOpts::posgrp_
uiGroup * posgrp_
Definition: uisegydef.h:204
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
uiSEGYFileOpts::crdChk
void crdChk(CallBacker *)

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