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

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