OpendTect  6.3
uiattribpartserv.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: Feb 2002
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uiattributesmod.h"
14 #include "uiapplserv.h"
15 
16 #include "attribsel.h"
17 #include "datapack.h"
18 #include "menuhandler.h"
19 #include "survgeom.h"
20 #include "timer.h"
21 
22 namespace Attrib
23 {
24  class Data2DHolder;
25  class Desc;
26  class DescSet;
27  class EngineMan;
28  class SelSpec;
29 }
30 
31 class BinIDValueSet;
32 class TrcKeyZSampling;
34 class IOObj;
35 class NLAModel;
36 class DataPointSet;
38 class SeisTrcBuf;
39 class TaskRunner;
40 class uiAttribDescSetEd;
41 class uiAttribCrossPlot;
42 class uiAttrSetMan;
43 class uiAttrVolOut;
44 class uiImpAttrSet;
45 namespace ColTab { class Mapper; }
46 namespace Pick { class Set; }
47 namespace ZDomain { class Info; class Def; }
48 
55 public:
58 
59  const char* name() const { return "Attributes"; }
60 
61  static int evDirectShowAttr();
63  static int evNewAttrSet();
65  static int evAttrSetDlgClosed();
67  static int evEvalAttrInit();
69  static int evEvalCalcAttr();
71  static int evEvalShowSlice();
73  static int evEvalStoreSlices();
75  static int evEvalRestore();
78  static int objNLAModel2D();
80  static int objNLAModel3D();
82  static uiString getMenuText(bool is2d,bool issteering, bool endmenu);
83 
84  void manageAttribSets(bool is2d);
85  const Attrib::DescSet* curDescSet(bool is2d) const;
86  void getDirectShowAttrSpec(Attrib::SelSpec&) const;
87  bool setSaved(bool is2d) const;
88  void saveSet(bool is2d);
89  bool editSet(bool is2d);
91  bool attrSetEditorActive() const { return attrsetdlg_; }
92  void updateSelSpec(Attrib::SelSpec&) const;
93  void setAttrsNeedUpdt() { attrsneedupdt_ =true;}
94 
95  bool selectAttrib(Attrib::SelSpec&,const ZDomain::Info*,
96  Pos::GeomID geomid,
97  const uiString& seltxt=tr("View Data")) ;
98  bool selectRGBAttribs(TypeSet<Attrib::SelSpec>&,
99  const ZDomain::Info*,Pos::GeomID);
100  bool setPickSetDirs(Pick::Set&,const NLAModel*,float vel);
101  void outputVol(const DBKey&,bool is2d,bool multioutput);
102  bool replaceSet(const IOPar&,bool is2d);
103  bool addToDescSet(const char*,bool is2d);
104  int getSliceIdx() const { return sliceidx_; }
105  void getPossibleOutputs(bool is2d,BufferStringSet&) const;
106 
107  void setTargetSelSpec(const Attrib::SelSpec&);
109  { targetspecs_ = specs; }
110 
112  { return targetspecs_; }
113 
114  DataPack::ID createOutput(const TrcKeyZSampling&,DataPack::ID);
115  RefMan<RegularSeisDataPack> createOutput(const TrcKeyZSampling&,
116  const RegularSeisDataPack* prevslcs=0);
117  bool createOutput(DataPointSet&,int firstcol =0);
118  bool createOutput(ObjectSet<DataPointSet>&,
119  int firstcol =0);
120  bool createOutput(const BinIDValueSet&,SeisTrcBuf&,
122  DataPack::ID createRdmTrcsOutput(const Interval<float>& zrg,
123  int rdlidx);
124  static DataPack::ID createDataPackFor2D(const Attrib::Data2DHolder& input,
125  const ZDomain::Def& zdef,
126  const BufferStringSet& compnames=0);
127 
128  Attrib::DescID getStoredID(const DBKey&,bool is2d,
129  int selout=-1) const;
130  IOObj* getIOObj(const Attrib::SelSpec&) const;
131 
132  bool extractData(ObjectSet<DataPointSet>&);
133  bool createAttributeSet(const BufferStringSet&,
134  Attrib::DescSet*);
135  void importAttrSetFromFile();
136  void importAttrSetFromOtherSurvey();
137 
138  const NLAModel* getNLAModel(bool) const;
139  void setNLAName( const char* nm ) { nlaname_ = nm; }
140 
141  void resetMenuItems();
142  MenuItem* storedAttribMenuItem(const Attrib::SelSpec&,bool is2d,
143  bool);
144  MenuItem* calcAttribMenuItem(const Attrib::SelSpec&,bool is2d,
145  bool);
146  MenuItem* nlaAttribMenuItem(const Attrib::SelSpec&,bool is2d,
147  bool);
148  MenuItem* zDomainAttribMenuItem(const Attrib::SelSpec&,
149  const ZDomain::Info&,
150  bool is2d,bool);
151  void fillInStoredAttribMenuItem(MenuItem*,bool,bool,
152  const Attrib::SelSpec&,bool,
153  bool needext=false);
154  void filter2DMenuItems(MenuItem&,const Attrib::SelSpec&,
155  int geomid, bool isstored,
156  int steerpol );
157 
158  bool handleAttribSubMenu(int mnuid,Attrib::SelSpec&,bool&);
159  bool handleMultiComp(const DBKey&,bool,bool,
161  TypeSet<int>&);
162  void info2DAttribSubMenu(int mnuid,BufferString& attbnm,
163  bool& steering,bool& stored);
164  bool prepMultCompSpecs(TypeSet<int>,const DBKey&,
165  bool,bool);
166 
167  void setEvaluateInfo(bool ae,bool as)
168  { alloweval_=ae; allowevalstor_=as; }
169 
170  void fillPar(IOPar&,bool,bool) const;
171  void usePar(const IOPar&,bool,bool);
172 
174  { dpsdispmgr_ = dispmgr; }
175 
176  void set2DEvent( bool is2d ) { is2devsent_ = is2d; }
177  bool is2DEvent() { return is2devsent_; }
178  int use3DMode() const;
181  const Attrib::DescSet* getUserPrefDescSet() const;
183  void showXPlot(CallBacker*);
184 
185  void setEvalBackupColTabMapper(const ColTab::Mapper*);
186  const ColTab::Mapper* getEvalBackupColTabMapper() const;
187 
188  void setSelAttr(const char* attrnm,bool isnewset=true);
189  void loadDefaultAttrSet(const char* attrsetnm);
190 
191 protected:
192 
205 
218 
219  Attrib::EngineMan* createEngMan(const TrcKeyZSampling* cs=0,
220  Pos::GeomID geomid=mUdfGeomID);
221 
222  void directShowAttr(CallBacker*);
223 
224  void showEvalDlg(CallBacker*);
225  void showCrossEvalDlg(CallBacker*);
226  void calcEvalAttrs(CallBacker*);
227  void showSliceCB(CallBacker*);
228  void evalDlgClosed(CallBacker*);
229  void xplotClosedCB(CallBacker*);
230  void processEvalDlg(bool iscrossevaluate);
231  void attrsetDlgApply(CallBacker*);
232 
233  void attrsetDlgClosed(CallBacker*);
234  void attrsetDlgCloseTimTick(CallBacker*);
235  void survChangedCB(CallBacker*);
236 
237  Attrib::DescID targetID(bool is2d,int nr=0) const;
238 
239  void handleAutoSet();
240  void useAutoSet(bool);
241 
242  void insertNumerousItems(const BufferStringSet&,
243  const Attrib::SelSpec&,
244  bool,bool,bool);
245 
246  void snapToValidRandomTraces(TypeSet<BinID>& path,
247  const Attrib::Desc*);
248 
249  static const char* attridstr();
251 
257 
259 
261 
262 private:
263 
264  DataPack::ID create2DOutput(const TrcKeyZSampling&,
265  const Pos::GeomID&,TaskRunner&);
267 };
#define mExpClass(module)
Definition: commondefs.h:157
MenuItem calc2dmnuitem_
Definition: uiattribpartserv.h:195
MenuItem stored3dmnuitem_
Definition: uiattribpartserv.h:194
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
AttributeSet Manager.
Definition: uiattrsetman.h:22
Definition: ioobj.h:57
Set of data points with group selection.
Definition: datapointset.h:47
void setDPSDispMgr(DataPointSetDisplayMgr *dispmgr)
Definition: uiattribpartserv.h:173
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
void setEvaluateInfo(bool ae, bool as)
Definition: uiattribpartserv.h:167
bool is2DEvent()
Definition: uiattribpartserv.h:177
Minimum Interface for NLA models.
Definition: nlamodel.h:22
MenuItem multcomp2d_
Definition: uiattribpartserv.h:203
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
void setAttrsNeedUpdt()
Definition: uiattribpartserv.h:93
Set of attribute descriptions.
Definition: attribdescset.h:29
TypeSet< Attrib::SelSpec > targetspecs_
Definition: uiattribpartserv.h:256
AttribDesc ID: each Desc has a unique ID in a set; the boolean isstored allows us to know whether thi...
Definition: attribdescid.h:25
Class that holds 2d seismic data or attribute data.
Definition: attribdataholder.h:78
Timer attrsetclosetim_
Definition: uiattribpartserv.h:209
VolumeDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:42
Definition: uistring.h:88
void setTargetSelSpecs(const TypeSet< Attrib::SelSpec > &specs)
Definition: uiattribpartserv.h:108
Set of BufferString objects.
Definition: bufstringset.h:25
Maps data values to color sequence positions: [0,1].
Definition: coltabmapper.h:33
DataPointSet display manager.
Definition: dpsdispmgr.h:102
uiImpAttrSet * impattrsetdlg_
Definition: uiattribpartserv.h:214
The attribute engine manager.
Definition: attribengman.h:43
uiAttrVolOut * volattrdlg_
Definition: uiattribpartserv.h:215
uiAttrVolOut * dataattrdlg_
Definition: uiattribpartserv.h:217
void setNLAName(const char *nm)
Definition: uiattribpartserv.h:139
Monitorable set of pick locations.
Definition: pickset.h:41
FixedString Desc()
Definition: keystrs.h:60
int sliceidx_
Definition: uiattribpartserv.h:254
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Definition: menuhandler.h:74
Class that can execute a task.
Definition: task.h:193
Description of an attribute in an Attrib::DescSet. Each attribute has a name (e.g. "Similarity"), a user reference (e.g. "My similarity"), and at least one output. In addition, it may have parameters and inputs. If it has multiple outputs, only one of the outputs are selected.
Definition: attribdesc.h:87
Definition: uiattrgetfile.h:53
uiAttrSetMan * manattribset2ddlg_
Definition: uiattribpartserv.h:212
Definition: uiattribcrossplot.h:31
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
bool alloweval_
Definition: uiattribpartserv.h:252
uiAttribDescSetEd * attrsetdlg_
Definition: uiattribpartserv.h:208
MenuItem stored2dmnuitem_
Definition: uiattribpartserv.h:193
uiAttrVolOut * multiattrdlg_
Definition: uiattribpartserv.h:216
bool attrSetEditorActive() const
Definition: uiattribpartserv.h:91
Attrib::DescSet * evalset
Definition: uiattribpartserv.h:255
const Attrib::Desc * dirshwattrdesc_
Definition: uiattribpartserv.h:207
MenuItem calc3dmnuitem_
Definition: uiattribpartserv.h:196
const ColTab::Mapper * evalmapperbackup_
Definition: uiattribpartserv.h:260
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
MenuItem nla2dmnuitem_
Definition: uiattribpartserv.h:197
Index_Type GeomID
Definition: commontypes.h:48
bool is2devsent_
Definition: uiattribpartserv.h:210
ObjectSet< uiAttribCrossPlot > attrxplotset_
Definition: uiattribpartserv.h:206
void set2DEvent(bool is2d)
Definition: uiattribpartserv.h:176
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
MenuItem multcomp3d_
Definition: uiattribpartserv.h:204
Services from application level to &#39;Part servers&#39;.
Definition: uiapplserv.h:22
Service provider for application level - Attributes.
Definition: uiattribpartserv.h:53
Definition: picklocation.h:19
int getSliceIdx() const
Definition: uiattribpartserv.h:104
MenuItem steering2dmnuitem_
Definition: uiattribpartserv.h:201
set of seismic traces.
Definition: seisbuf.h:28
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:21
Definition: coltab.h:20
Specifies an attribute selection (ID or output number of NN).
Definition: attribsel.h:43
bool attrsneedupdt_
Definition: uiattribpartserv.h:211
MenuItem nla3dmnuitem_
Definition: uiattribpartserv.h:198
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
#define mUdfGeomID
Definition: survgeom.h:24
Definition: groupedid.h:41
Makes available certain services that are needed on a higher level.
Definition: uiapplserv.h:46
Editor for Attribute sets.
Definition: uiattrdescseted.h:47
Dialog for creating volume output.
Definition: uiattrvolout.h:34
Timer class.
Definition: timer.h:24
MenuItem steering3dmnuitem_
Definition: uiattribpartserv.h:202
DataPointSetDisplayMgr * dpsdispmgr_
Definition: uiattribpartserv.h:258
Definition of z-domain.
Definition: zdomain.h:39
BufferString nlaname_
Definition: uiattribpartserv.h:250
uiAttrSetMan * manattribset3ddlg_
Definition: uiattribpartserv.h:213
Information of z-domain.
Definition: zdomain.h:96
bool allowevalstor_
Definition: uiattribpartserv.h:253
Semblance Attribute.
Definition: attribdataholder.h:21
MenuItem zdomain3dmnuitem_
Definition: uiattribpartserv.h:200
const TypeSet< Attrib::SelSpec > & getTargetSelSpecs() const
Definition: uiattribpartserv.h:111
Definition: zdomain.h:18
MenuItem zdomain2dmnuitem_
Definition: uiattribpartserv.h:199
const char * name() const
Definition: uiattribpartserv.h:59

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