OpendTect  6.3
uiodapplmgr.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: A.H. Bril
7  Date: May 2001
8 ________________________________________________________________________
9 
10 -*/
11 
12 #include "uiodmainmod.h"
13 #include "uiodmain.h"
14 
16 class uiApplPartServer;
17 class uiApplService;
18 class uiAttribPartServer;
20 class uiEMPartServer;
21 class uiMPEPartServer;
22 class uiNLAPartServer;
23 class uiODApplService;
24 class uiPickPartServer;
25 class uiSeisPartServer;
26 class uiTreeItem;
27 class uiVisPartServer;
30 class uiWellPartServer;
34 
35 class DataPointSet;
36 class ODSession;
37 namespace Attrib { class DescID; class SelSpec; }
38 namespace Pick { class Set; }
39 
55 public:
56 
57  uiPickPartServer* pickServer() { return pickserv_; }
58  uiVisPartServer* visServer() { return visserv_; }
59  uiSeisPartServer* seisServer() { return seisserv_; }
60  uiAttribPartServer* attrServer() { return attrserv_; }
61  uiVolProcPartServer* volprocServer() { return volprocserv_; }
62  uiEMPartServer* EMServer() { return emserv_; }
63  uiEMAttribPartServer* EMAttribServer() { return emattrserv_; }
64  uiWellPartServer* wellServer() { return wellserv_; }
65  uiWellAttribPartServer* wellAttribServer() { return wellattrserv_;}
66  uiMPEPartServer* mpeServer() { return mpeserv_; }
67  uiNLAPartServer* nlaServer() { return nlaserv_; }
68 
69  const uiPickPartServer* pickServer() const { return pickserv_; }
70  const uiVisPartServer* visServer() const { return visserv_; }
71  const uiSeisPartServer* seisServer() const { return seisserv_; }
72  const uiAttribPartServer* attrServer() const { return attrserv_; }
73  const uiVolProcPartServer* volprocServer() const { return volprocserv_; }
74  const uiEMPartServer* EMServer() const { return emserv_; }
75  const uiEMAttribPartServer* EMAttribServer() const { return emattrserv_; }
76  const uiWellPartServer* wellServer() const { return wellserv_; }
78  { return wellattrserv_;}
79  const uiMPEPartServer* mpeServer() const { return mpeserv_; }
80  const uiNLAPartServer* nlaServer() const { return nlaserv_; }
81 
82  void setNlaServer(uiNLAPartServer* s);
84  { return (uiApplService&)applservice_; }
85  inline uiODSceneMgr& sceneMgr() { return appl_.sceneMgr(); }
86 
87 
88  // Survey menu operations
89  bool selectSurvey(uiParent*);
90  bool manageSurvey() { return manSurv(0); }
91 
92  enum ObjType { Seis, Hor, Flt, Fltss, Wll, Attr, NLA, Pick,
93  Poly, Sess, Strat, Wvlt, MDef, Vel, PDF, PVDS,
94  Geom, Body, Props, ColTab, RanL, NrObjTypes };
95  enum ActType { Imp, Exp, Man };
96  void doOperation(ObjType,ActType,int opt=0);
98  void manPreLoad(ObjType);
99 
100  // Processing menu operations
101  void editAttribSet();
102  void editAttribSet(bool is2d);
103  bool editNLA(bool is2d);
104  void createVol(bool is2d,bool multiattrib);
105  void createVolProcOutput(bool);
106  void doWellXPlot(CallBacker* =0);
108  void doAttribXPlot(CallBacker* =0);
110  void openCrossPlot(CallBacker* =0);
112  void createHorOutput(int,bool);
113  void startBatchJob();
114  void processTime2Depth(CallBacker* =0);
115  void processPreStack(bool is2d);
116  void createMultiCubeDS(CallBacker* =0);
117  void createMultiAttribVol(CallBacker*);
118  void processVelConv(CallBacker* =0);
119  void genAngleMuteFunction(CallBacker* =0);
120  void bayesClass2D(CallBacker* =0);
121  void bayesClass3D(CallBacker* =0);
122  void createCubeFromWells(CallBacker* =0);
123  void create2DGrid() { process2D3D(0); }
124  void create2DFrom3D() { process2D3D(1); }
125  void create3DFrom2D() { process2D3D(2); }
126 
127  // View menu operations
128  void setWorkingArea();
129  void setZStretch();
130  void setStereoOffset();
131  void show2DViewer();
132 
133  // Scene menu operations
134  void addTimeDepthScene();
135  void addHorFlatScene(bool is2d);
136 
137  // Utility menu operations
138  void batchProgs();
139  void setupBatchHosts();
140  void pluginMan();
141  void posConversion();
142  void crDevEnv();
143  void manageShortcuts();
144  void startInstMgr();
145  void setAutoUpdatePol();
146 
147  // Tree menu services
148  // Selections
149  void selectWells(DBKeySet&);
150  void selectHorizon(DBKey&);
151  void selectFault(DBKey&);
152  void selectPolygonSurface(DBKey&);
153  void selectStickSet(DBKey&);
154  bool selectAttrib(int id,int attrib);
155 
156  // PickSets
157  bool storePickSets(int polyopt,const char* cat=0);
158  bool storePickSet(const Pick::Set&);
159  bool storePickSetAs(const Pick::Set&);
160  bool setPickSetDirs(Pick::Set&);
161 
162  // Tool to exhange mouse-cursor information between windows
163  MouseCursorExchange& mouseCursorExchange();
164 
165  // Work. Don't use unless expert.
167  { return visdpsdispmgr_; }
168  inline uiODViewer2DMgr& viewer2DMgr() { return appl_.viewer2DMgr(); }
169  bool getNewData(int visid,int attrib);
170  bool evaluateAttribute(int visid,int attrib);
171  bool evaluate2DAttribute(int visid, int attrib);
172  void pageUpDownPressed(bool up);
173  void handleSurveySelect();
174  bool isFreshSurvey() const;
175  void handleSIPImport();
176  void resetServers();
177  void updateColorTable(int visid,int attrib);
178  void saveDefColTab(int visid,int attrib);
179  bool getDefaultDescID(Attrib::DescID&,
180  bool is2d=false) const;
181  void calcShiftAttribute(int attrib,
182  const Attrib::SelSpec&);
183  bool calcRandomPosAttrib(int visid,int attrib);
184  bool calcMultipleAttribs(Attrib::SelSpec&);
185  void addVisDPSChild(CallBacker*);
186  void manSurvCB(CallBacker*);
187  void seisOut2DCB(CallBacker*);
188  void seisOut3DCB(CallBacker*);
189  void editAttr2DCB(CallBacker*)
190  { editAttribSet(true); }
191  void editAttr3DCB(CallBacker*)
192  { editAttribSet(false);}
194 
195  void doVolProc2DCB(CallBacker*);
196  void doVolProc3DCB(CallBacker*);
197  void doVolProc(const DBKey&);
198  void tieWellToSeismic(CallBacker*);
199  void doWellLogTools(CallBacker*);
200  void launchRockPhysics(CallBacker*);
201  void launch2DViewer(CallBacker*);
202  void doLayerModeling(CallBacker*);
203  void setupRdmLinePreview(const TypeSet<Coord>&);
204  void cleanPreview();
205  void addMPEParentPath(int visid,const TrcKey&);
206 
207  void enableMenusAndToolBars(bool);
208  void enableTree(bool);
209  void enableSceneManipulation(bool);
223  int otherFormatVisID() const
224  { return otherformatvisid_; }
225  int otherFormatAttrib() const
226  { return otherformatattrib_; }
227  void useDefColTab(int visid,int attrib);
228  bool isRestoringSession() const;
229 
230 protected:
231 
233  ~uiODApplMgr();
234 
237 
252 
254  {
256  : xyunit_(1)
257  , zunit_(0)
258  , zstep_(0.004) {}
259 
260  void refresh();
261 
262  int xyunit_;
263  int zunit_;
264  float zstep_;
265  };
266 
268  bool manSurv(uiParent*);
269  bool survChgReqAttrUpdate();
270 
271  bool handleEvent(const uiApplPartServer*,int);
272  void* deliverObject(const uiApplPartServer*,int);
273 
274  bool handleMPEServEv(int);
275  bool handleWellServEv(int);
276  bool handleWellAttribServEv(int);
277  bool handleEMServEv(int);
278  bool handleEMAttribServEv(int);
279  bool handlePickServEv(int);
280  bool handleVisServEv(int);
281  bool handleNLAServEv(int);
282  bool handleAttribServEv(int);
283  bool handleVolProcServEv(int);
284 
285  void surveyChangeOKCB(CallBacker*);
286  void surveyToBeChanged(CallBacker*);
287  void surveyChanged(CallBacker*);
288  void colSeqChg(CallBacker*);
289  void storeEMObject(bool saveas=false);
290 
291  void manStrat();
292 
293  void setRandomPosData(int visid,int attrib,
294  const DataPointSet&);
295  void process2D3D(int opt);
298  friend class uiODApplService;
299 
302 
304 
305  static bool Convert_OD4_Data_To_OD5();
306  static bool Convert_OD4_Body_To_OD5();
307  void mainWinUpCB(CallBacker*);
308 
309  friend class uiODMain;
310  friend class uiODApplMgrDispatcher;
312 };
#define mExpClass(module)
Definition: commondefs.h:157
Velocity.
Definition: velocityfunction.h:30
Seismics.
Definition: segydirectdef.h:20
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
uiVolProcPartServer * volprocServer()
Definition: uiodapplmgr.h:61
uiEMAttribPartServer * EMAttribServer()
Definition: uiodapplmgr.h:63
Set of data points with group selection.
Definition: datapointset.h:47
Application level manager - ties part servers together.
Definition: uiodapplmgr.h:53
OpendTect application top level object.
Definition: uiodmain.h:38
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
The Visualization Part Server.
Definition: uivispartserv.h:60
uiSeisPartServer * seisServer()
Definition: uiodapplmgr.h:59
Part Server for Wells.
Definition: uiwellattribpartserv.h:33
void create2DFrom3D()
Definition: uiodapplmgr.h:124
uiODViewer2DMgr & viewer2DMgr()
Definition: uiodapplmgr.h:168
uiMPEPartServer * mpeserv_
Definition: uiodapplmgr.h:248
uiEMPartServer * emserv_
Definition: uiodapplmgr.h:244
const uiSeisPartServer * seisServer() const
Definition: uiodapplmgr.h:71
Definition: dbkey.h:98
AttribDesc ID: each Desc has a unique ID in a set; the boolean isstored allows us to know whether thi...
Definition: attribdescid.h:25
int otherformatvisid_
Definition: uiodapplmgr.h:300
Seismic User Interface Part Server.
Definition: uiseispartserv.h:37
uiApplService for OD
Definition: uiodapplmgraux.h:41
uiWellPartServer * wellserv_
Definition: uiodapplmgr.h:246
void editAttr2DCB(CallBacker *)
Definition: uiodapplmgr.h:189
int xyunit_
Definition: uiodapplmgr.h:262
int zunit_
Definition: uiodapplmgr.h:263
Definition: uiparent.h:24
uiODApplMgrDispatcher & dispatcher_
Definition: uiodapplmgr.h:249
MiscSurvInfo tmpprevsurvinfo_
Definition: uiodapplmgr.h:267
ObjType
Definition: uiodapplmgr.h:92
const uiVisPartServer * visServer() const
Definition: uiodapplmgr.h:70
Earth Model UI Part Server.
Definition: uiempartserv.h:50
Definition: mouseevent.h:206
Part Server for Wells.
Definition: uiwellpartserv.h:40
const uiAttribPartServer * attrServer() const
Definition: uiodapplmgr.h:72
MiscSurvInfo()
Definition: uiodapplmgr.h:255
Monitorable set of pick locations.
Definition: pickset.h:41
uiVisDataPointSetDisplayMgr * visDPSDispMgr()
Definition: uiodapplmgr.h:166
Notifier< uiODApplMgr > attribSetChg
Definition: uiodapplmgr.h:193
ActType
Definition: uiodapplmgr.h:95
Notifier< uiODApplMgr > getOtherFormatData
Definition: uiodapplmgr.h:213
int otherFormatAttrib() const
Definition: uiodapplmgr.h:225
Service provider for application level - Non-Linear Analysis.
Definition: uinlapartserv.h:35
Set of (small) copyable elements.
Definition: commontypes.h:26
uiVisPartServer * visserv_
Definition: uiodapplmgr.h:239
Implementation of DataPointSetDisplayMgr that enables display of datapointsets in 3d visualization sc...
Definition: uivisdatapointsetdisplaymgr.h:28
uiSeisPartServer * seisserv_
Definition: uiodapplmgr.h:243
const uiPickPartServer * pickServer() const
Definition: uiodapplmgr.h:69
Definition: uiodviewer2dmgr.h:36
Definition: uiodscenemgr.h:64
uiPickPartServer * pickserv_
Definition: uiodapplmgr.h:238
Definition: uiodapplmgr.h:92
uiODMain & appl_
Definition: uiodapplmgr.h:235
uiEMPartServer * EMServer()
Definition: uiodapplmgr.h:62
Implementation of Tracking part server interface.
Definition: uimpepartserv.h:31
Service provider for application level - VolumeProcessing.
Definition: uivolprocpartserv.h:25
uiWellAttribPartServer * wellattrserv_
Definition: uiodapplmgr.h:247
float zstep_
Definition: uiodapplmgr.h:264
Definition: uiodapplmgr.h:253
uiMPEPartServer * mpeServer()
Definition: uiodapplmgr.h:66
uiWellPartServer * wellServer()
Definition: uiodapplmgr.h:64
void create3DFrom2D()
Definition: uiodapplmgr.h:125
const uiEMAttribPartServer * EMAttribServer() const
Definition: uiodapplmgr.h:75
MouseCursorExchange & mousecursorexchange_
Definition: uiodapplmgr.h:251
uiODApplService & applservice_
Definition: uiodapplmgr.h:236
uiEMAttribPartServer * emattrserv_
Definition: uiodapplmgr.h:245
Stratigraphy.
Definition: stratlevel.h:25
uiVolProcPartServer * volprocserv_
Definition: uiodapplmgr.h:242
FixedString Body()
Definition: keystrs.h:41
Service provider for application level - seismics.
Definition: uipickpartserv.h:34
Services from application level to &#39;Part servers&#39;.
Definition: uiapplserv.h:22
Service provider for application level - Attributes.
Definition: uiattribpartserv.h:53
Dispatches work for Appl Mgr.
Definition: uiodapplmgraux.h:57
const uiWellPartServer * wellServer() const
Definition: uiodapplmgr.h:76
Definition: picklocation.h:19
const uiVolProcPartServer * volprocServer() const
Definition: uiodapplmgr.h:73
uiAttribPartServer * attrserv_
Definition: uiodapplmgr.h:241
void editAttr3DCB(CallBacker *)
Definition: uiodapplmgr.h:191
uiODSceneMgr & sceneMgr()
Definition: uiodapplmgr.h:85
const uiEMPartServer * EMServer() const
Definition: uiodapplmgr.h:74
uiVisPartServer * visServer()
Definition: uiodapplmgr.h:58
bool manageSurvey()
Definition: uiodapplmgr.h:90
Definition: coltab.h:20
Specifies an attribute selection (ID or output number of NN).
Definition: attribsel.h:43
float Exp(float)
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:26
Makes available certain services that are needed on a higher level.
Definition: uiapplserv.h:46
Does visualization-related work for uiODApplMgr.
Definition: uiodapplmgraux.h:108
const uiMPEPartServer * mpeServer() const
Definition: uiodapplmgr.h:79
Definition: commontypes.h:55
const uiWellAttribPartServer * wellAttribServer() const
Definition: uiodapplmgr.h:77
uiPickPartServer * pickServer()
Definition: uiodapplmgr.h:57
dTect session save/restore
Definition: odsession.h:22
uiWellAttribPartServer * wellAttribServer()
Definition: uiodapplmgr.h:65
uiODApplMgrAttrVisHandler & attrvishandler_
Definition: uiodapplmgr.h:250
Definition: uiodapplmgr.h:93
uiVisDataPointSetDisplayMgr * visdpsdispmgr_
Definition: uiodapplmgr.h:303
are helping classes for uiTreeViews, wich makes it easy to bundle inteligence and data to treeitems...
Definition: uitreeitem.h:34
const uiNLAPartServer * nlaServer() const
Definition: uiodapplmgr.h:80
int otherFormatVisID() const
Definition: uiodapplmgr.h:223
uiNLAPartServer * nlaserv_
Definition: uiodapplmgr.h:240
uiApplService & applService()
Definition: uiodapplmgr.h:83
uiNLAPartServer * nlaServer()
Definition: uiodapplmgr.h:67
uiAttribPartServer * attrServer()
Definition: uiodapplmgr.h:60
void create2DGrid()
Definition: uiodapplmgr.h:123
Semblance Attribute.
Definition: attribdataholder.h:21
Definition: uiodapplmgr.h:94
Part Server for Attribute handling on EarthModel objects.
Definition: uiemattribpartserv.h:38
int otherformatattrib_
Definition: uiodapplmgr.h:301

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