OpendTect  6.3
uiiosurface.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: Nanne Hemstra
8  Date: July 2003
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uiearthmodelmod.h"
14 #include "uicompoundparsel.h"
15 #include "uigroup.h"
16 #include "uidialog.h"
17 
18 #include "bufstringset.h"
19 #include "faulttrace.h"
20 #include "trckeysampling.h"
21 #include "posinfo2dsurv.h"
22 #include "stratlevel.h"
23 #include "emposid.h"
24 
25 
26 class IOObj;
27 class CtxtIOObj;
28 
29 class uiCheckBox;
30 class uiColorInput;
31 class uiFaultOptSel;
32 class uiIOObjSel;
33 class uiListBox;
34 class uiPosSubSel;
35 class uiStratLevelSel;
36 
37 
38 namespace EM { class Surface; class SurfaceIODataSelection;
39  class SurfaceIOData;}
40 
41 
44 mExpClass(uiEarthModel) uiIOSurface : public uiGroup
46 public:
47  ~uiIOSurface();
48 
49  const IOObj* selIOObj() const;
50  void getSelection(EM::SurfaceIODataSelection&) const;
51  void getSelAttributes( BufferStringSet&) const;
52  void setInput(const DBKey&) const;
53  void setSelAttributes(const BufferStringSet&) const;
54 
55  virtual bool processInput() { return true; }
56 
58  bool haveAttrSel() const;
59  uiIOObjSel* getObjSel() { return objfld_; }
60  uiPosSubSel* getPosSubSel() { return rgfld_; }
61 
62 protected:
63  uiIOSurface(uiParent*,bool forread,
64  const char* type);
65 
66  void fillFields(const EM::SurfaceIOData&);
67  bool getSurfaceIOData(const DBKey&,EM::SurfaceIOData&,
68  bool showmsg=true) const;
69  bool getSurfaceIOData(const EM::ObjectID&,
70  EM::SurfaceIOData&) const;
71  void fillSectionFld(const BufferStringSet&);
72  void fillAttribFld(const BufferStringSet&);
73  void fillRangeFld(const TrcKeySampling&);
74 
75  void mkAttribFld(bool);
76  void mkSectionFld(bool);
77  void mkRangeFld(bool multiss=false);
78  void mkObjFld(const uiString&);
79 
80  void objSel(CallBacker*);
81  void attrSel(CallBacker*);
82  virtual void ioDataSelChg(CallBacker*) {}
83 
88 
90  bool forread_;
91 
92  virtual void inpChanged() {}
93 };
94 
95 
96 mExpClass(uiEarthModel) uiSurfaceWrite : public uiIOSurface
98 public:
99 
100  typedef Strat::Level::ID LevelID;
101 
102  mExpClass(uiEarthModel) Setup
103  {
104  public:
105  Setup( const char* surftyp, const uiString& type_name )
106  : typ_(surftyp)
107  , typname_( type_name )
108  , withsubsel_(false)
109  , withcolorfld_(false)
110  , withstratfld_(false)
111  , withdisplayfld_(false)
112  , displaytext_(tr("Replace in tree"))
113  {}
114 
116  mDefSetupMemb(uiString,typname)
117  mDefSetupMemb(bool,withsubsel)
118  mDefSetupMemb(bool,withcolorfld)
119  mDefSetupMemb(bool,withstratfld)
120  mDefSetupMemb(bool,withdisplayfld)
121  mDefSetupMemb(uiString,displaytext)
122  };
123 
125  const uiSurfaceWrite::Setup& setup);
127  const uiSurfaceWrite::Setup& setup);
128 
129  virtual bool processInput();
130  LevelID getStratLevelID() const;
131  void setColor(const Color&);
132  Color getColor() const;
133  bool replaceInTree() const;
134 
135  uiCheckBox* getDisplayFld() { return displayfld_; }
136 
137 protected:
138  void stratLvlChg(CallBacker*);
139  void ioDataSelChg(CallBacker*);
140 
145 };
146 
147 
148 mExpClass(uiEarthModel) uiSurfaceRead : public uiIOSurface
150 public:
151  mExpClass(uiEarthModel) Setup
152  {
153  public:
154  Setup( const char* surftyp )
155  : typ_(surftyp)
156  , withattribfld_(true)
157  , withsectionfld_(true)
158  , withsubsel_(false)
159  , multisubsel_(false)
160  , multiattribsel_(true)
161  {}
162 
164  mDefSetupMemb(bool,withattribfld)
165  mDefSetupMemb(bool,withsectionfld)
166  mDefSetupMemb(bool,withsubsel)
167  mDefSetupMemb(bool,multisubsel)
168  mDefSetupMemb(bool,multiattribsel)
169  };
170 
171  uiSurfaceRead(uiParent*,const Setup&);
172 
173  virtual bool processInput();
174  void setIOObj(const DBKey&);
175 
177 
178 protected:
179 
180  void inpChanged() { inpChange.trigger(); }
181 
182 };
183 
184 
187 public:
188  uiHorizonParSel(uiParent*,bool is2d,
189  bool withclear=false);
190  ~uiHorizonParSel();
191 
192  void setSelected(const DBKeySet&);
193  const DBKeySet& getSelected() const;
194 
195  void fillPar(IOPar&) const;
196  bool usePar(const IOPar&);
197 
198  BufferString getSummary() const;
199 
200 protected:
201 
202  void clearPush(CallBacker*);
203  void doDlg(CallBacker*);
204 
205  bool is2d_;
207 };
208 
209 
212 public:
213  uiFaultParSel(uiParent*,bool is2d,
214  bool use_act_option=false,
215  bool keep_clean_but=true);
216 
217  /*Set my own options on selected, optional*/
218  void setActOptions(const BufferStringSet&,
219  int defaultoptidx=0);
220  const TypeSet<int>& getSelectedOptIndies() const { return optids_; }
221 
222  void setSelectedFaults(const DBKeySet&,
223  const TypeSet<FaultTrace::Act>* =0);
224  BufferString getSummary() const;
225  const DBKeySet& selFaultIDs() const { return selfaultids_; }
226 
227  void setEmpty();
228  void setGeomIDs(const TypeSet<Pos::GeomID>&);
229  /*<for FaultStickSet picked from 2D lines.*/
230 
232 
233 protected:
234 
235  friend class uiFaultOptSel;
236  void clearPush(CallBacker*);
237  void doDlg(CallBacker*);
238 
239  bool is2d_;
243 
248 };
Definition: uigroup.h:53
uiCheckBox * getDisplayFld()
Definition: uiiosurface.h:135
#define mExpClass(module)
Definition: commondefs.h:157
od_int32 ObjectID
Definition: emposid.h:22
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
FixedString Setup()
Definition: keystrs.h:113
Definition: ioobj.h:57
Single-line element allowing multi-parameter to be set via a dialog.
Definition: uicompoundparsel.h:29
bool forread_
Definition: uiiosurface.h:90
BufferStringSet optnms_
Definition: uiiosurface.h:245
virtual void ioDataSelChg(CallBacker *)
Definition: uiiosurface.h:82
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Group to capture a user&#39;s position subselection wishes.
Definition: uipossubsel.h:31
TypeSet< Pos::GeomID > geomids_
Definition: uiiosurface.h:242
Data interesting for Surface I/O.
Definition: emsurfaceiodata.h:28
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
Selector for stratigraphic levels.
Definition: uistratlvlsel.h:24
TypeSet< int > optids_
Definition: uiiosurface.h:246
Definition: dbkey.h:98
Definition: uiiosurface.h:96
virtual bool processInput()
Definition: uiiosurface.h:55
DBKeySet selfaultids_
Definition: uiiosurface.h:241
void trigger()
Definition: notify.h:128
Definition: uistring.h:88
const TypeSet< int > & getSelectedOptIndies() const
Definition: uiiosurface.h:220
Definition: uiparent.h:24
Set of BufferString objects.
Definition: bufstringset.h:25
Holds an IOObjCtxt plus a pointer to an IOObj and/or an IOPar.
Definition: ctxtioobj.h:24
bool is2d_
Definition: uiiosurface.h:239
Definition: uiiosurface.h:102
uiIOObjSel * objfld_
Definition: uiiosurface.h:87
List Box.
Definition: uilistbox.h:73
CtxtIOObj * ctio_
Definition: uiiosurface.h:89
Definition: uiiosurface.h:185
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
uiPosSubSel * getPosSubSel()
Definition: uiiosurface.h:60
Notifier< uiFaultParSel > selChange
Definition: uiiosurface.h:231
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:25
Base group for Surface input and output.
Definition: uiiosurface.h:44
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:129
uiListBox * attribfld_
Definition: uiiosurface.h:85
int defaultoptidx_
Definition: uiiosurface.h:247
Definition: uiiosurface.h:148
uiStratLevelSel * stratlvlfld_
Definition: uiiosurface.h:143
Definition: uiiosurface.h:210
User Interface (UI) element for selection of IOObjs.
Definition: uiioobjsel.h:36
const DBKeySet & selFaultIDs() const
Definition: uiiosurface.h:225
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
bool is2d_
Definition: uiiosurface.h:205
uiListBox * sectionfld_
Definition: uiiosurface.h:84
TrcKeySampling surfrange_
Definition: uiiosurface.h:144
Notifier< uiIOSurface > attrSelChange
Definition: uiiosurface.h:57
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
small element for color selection. Has no text label.
Definition: uicolor.h:42
FixedString Surface()
Definition: keystrs.h:124
bool useoptions_
Definition: uiiosurface.h:244
void inpChanged()
Definition: uiiosurface.h:180
Base class for surfaces like horizons and faults. A surface is made up of one or more segments or pat...
Definition: emsurface.h:31
Setup(const char *surftyp, const uiString &type_name)
Definition: uiiosurface.h:105
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
Notifier< uiIOSurface > inpChange
Definition: uiiosurface.h:176
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
FixedString ID()
Definition: keystrs.h:71
uiColorInput * colbut_
Definition: uiiosurface.h:142
BufferStringSet selfaultnms_
Definition: uiiosurface.h:240
Surface I/O data selection.
Definition: emsurfaceiodata.h:60
virtual void inpChanged()
Definition: uiiosurface.h:92
uiCheckBox * displayfld_
Definition: uiiosurface.h:141
Definition: uibutton.h:130
uiIOObjSel * getObjSel()
Definition: uiiosurface.h:59
DBKeySet selids_
Definition: uiiosurface.h:206
uiPosSubSel * rgfld_
Definition: uiiosurface.h:86

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