OpendTect-6_4  6.4
uiempartserv.h
Go to the documentation of this file.
1 #ifndef uiempartserv_h
2 #define uiempartserv_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: A.H. Bril
9  Date: Sep 2002
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "uiearthmodelmod.h"
16 
17 #include "emposid.h"
18 #include "trckeysampling.h"
19 #include "multiid.h"
20 #include "position.h"
21 #include "uiapplserv.h"
22 #include "uistring.h"
23 #include "uibulk2dhorizonimp.h"
24 
25 
26 class BinIDValueSet;
27 class BufferStringSet;
28 class TrcKeyZSampling;
29 class DataPointSet;
30 class TrcKeySampling;
31 class SurfaceInfo;
32 class ZAxisTransform;
34 class uiBulkFaultImport;
35 class uiCreateHorizon;
36 class uiExportFault;
37 class uiExportHorizon;
38 class uiImportFault3D;
40 class uiImportHorizon;
41 class uiSurfaceMan;
42 class uiVariogramDisplay;
43 
44 namespace EM { class EMObject; class EMManager; class SurfaceIODataSelection; }
45 namespace Pick { class Set; }
46 namespace PosInfo { class Line2DData; }
47 
48 template <class T> class Array2D;
49 
50 
57 public:
59  ~uiEMPartServer();
60 
61  const char* name() const { return "EarthModel"; }
62 
63  // Services
64  bool import3DHorGeom(bool bulk=false);
65  bool import3DHorAttr();
66  bool export3DHorizon(bool bulk=false);
67  bool export2DHorizon(bool bulk=false);
68  bool importFault();
69  bool importBulkFaults();
70  bool importFaultStickSet();
71  bool importFaultSet();
72  bool importBulkFaultStickSet(bool is2d=false);
73  void import2DFaultStickset();
74  void importBulk2DFaultStickset();
75  bool importBulk2DHorizon();
76  bool exportFault(bool single=false);
77  bool exportFaultStickSet(bool single=false);
78  bool exportFaultSet();
79  void createHorWithConstZ(bool is2d);
80 
81  MultiID getStorageID(const EM::ObjectID&) const;
82  EM::ObjectID getObjectID(const MultiID&) const;
83 
84  BufferString getName(const EM::ObjectID&) const;
85  const char* getType(const EM::ObjectID&) const;
86  uiString getUiName(const EM::ObjectID&) const;
87  uiString getUiType(const EM::ObjectID&) const;
88 
89  int nrAttributes(const EM::ObjectID&) const;
90  bool isGeometryChanged(const EM::ObjectID&) const;
91  bool isChanged(const EM::ObjectID&) const;
92  bool isEmpty(const EM::ObjectID&) const;
93  bool isFullResolution(const EM::ObjectID&) const;
94  bool isFullyLoaded(const EM::ObjectID&) const;
95 
96  void displayEMObject(const MultiID&);
97  bool fillHoles(const EM::ObjectID&,bool);
99  bool filterSurface(const EM::ObjectID&);
101  void fillPickSet(Pick::Set&,MultiID);
102  void deriveHor3DFrom2D(const EM::ObjectID&);
103  bool askUserToSave(const EM::ObjectID&,bool withcancl) const;
109  { return selectedrg_; }
110  void setHorizon3DDisplayRange(const TrcKeySampling&);
113  void selectHorizons(ObjectSet<EM::EMObject>&,bool is2d);
115  void selectFaults(ObjectSet<EM::EMObject>&,bool is2d);
117  void selectFaultStickSets(ObjectSet<EM::EMObject>&);
119  void selectBodies(ObjectSet<EM::EMObject>&);
121  bool showLoadAuxDataDlg(const EM::ObjectID&);
122  int loadAuxData(const EM::ObjectID&,const char*,
123  bool removeold=true);
126  bool loadAuxData(const EM::ObjectID&,const BufferStringSet&,
127  bool removeold=true);
128 
129  bool showLoadFaultAuxDataDlg(const EM::ObjectID&);
130  bool storeFaultAuxData(const EM::ObjectID& id,
131  BufferString& auxdatanm,
132  const Array2D<float>& data);
133  void manageSurfaces(const char* typ);
134  void manage2DHorizons();
135  void manage3DHorizons();
136  void manageFaultStickSets();
137  void manage3DFaults();
138  void manageFaultSets();
139  void manageBodies();
140  bool loadSurface(const MultiID&,
141  const EM::SurfaceIODataSelection* s=0);
142  void getSurfaceInfo(ObjectSet<SurfaceInfo>&);
143  static void getAllSurfaceInfo(ObjectSet<SurfaceInfo>&,bool);
144  void getSurfaceDef3D(const TypeSet<EM::ObjectID>&,
145  BinIDValueSet&,
146  const TrcKeySampling&) const;
147  void getSurfaceDef2D(const ObjectSet<MultiID>&,
148  const BufferStringSet& sellines,
151 
152  bool storeObject(const EM::ObjectID&,
153  bool storeas=false) const;
154  bool storeObject(const EM::ObjectID&,bool storeas,
155  MultiID& storagekey,
156  float shift=0) const;
157  bool storeAuxData(const EM::ObjectID&,
158  BufferString& auxdataname,
159  bool storeas=false) const;
160  int setAuxData(const EM::ObjectID&,
161  DataPointSet&,const char* nm,int valnr,
162  float shift);
163  bool getAuxData(const EM::ObjectID&,int auxdatanr,
164  DataPointSet&, float& shift) const;
165  bool getAllAuxData(const EM::ObjectID&,DataPointSet&,
166  TypeSet<float>* shfs=0,
167  const TrcKeyZSampling* cs=0) const;
168  bool interpolateAuxData(const EM::ObjectID&,const char* nm,
169  DataPointSet& res);
170  bool filterAuxData(const EM::ObjectID&,const char* nm,
171  DataPointSet& res);
172  bool computeVariogramAuxData(const EM::ObjectID&,const char*,
173  DataPointSet&);
174  bool attr2Geom(const EM::ObjectID&,const char* nm,
175  const DataPointSet&);
176  bool geom2Attr(const EM::ObjectID&);
177  ZAxisTransform* getHorizonZAxisTransform(bool is2d);
178 
179  const char* genRandLine(int opt);
180  bool dispLineOnCreation() { return disponcreation_; }
181 
182  void removeUndo();
183 
184  static int evDisplayHorizon();
185  static int evRemoveTreeObject();
186 
187  // Interaction stuff
188  const EM::ObjectID& selEMID() const { return selemid_; }
189  EM::EMObject* selEMObject();
190 
191  void removeTreeObject(const EM::ObjectID&);
192 
193  void managePreLoad();
194  void fillPar(IOPar&) const;
195  bool usePar(const IOPar&);
196 
197 protected:
198 
199  void selectSurfaces(ObjectSet<EM::EMObject>&,
200  const char* type);
201  bool loadAuxData(const EM::ObjectID&,const TypeSet<int>&,
202  bool removeold=true);
203  bool changeAuxData(const EM::ObjectID&,const char* nm,
204  bool interp,DataPointSet& res);
205  void importReadyCB(CallBacker*);
206  void survChangedCB(CallBacker*);
207 
223 
224 
227 
229 
230  static const char* sKeySectionID() { return "Section ID"; }
236 
237  void displayOnCreateCB(CallBacker*);
238 };
239 
240 #endif
const EM::ObjectID & selEMID() const
Definition: uiempartserv.h:188
uiImportFaultStickSet2D * impfss2ddlg_
Definition: uiempartserv.h:216
#define mExpClass(module)
Definition: commondefs.h:160
od_int32 ObjectID
Definition: emposid.h:24
To be able to send and/or receive CallBacks, inherit from this class.
Definition: callback.h:272
uiSurfaceMan * manfssdlg_
Definition: uiempartserv.h:234
Set of data points with group selection.
Definition: datapointset.h:48
Surface info name/attribname with an ID (usually the EM-ID).
Definition: surfaceinfo.h:21
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
Dialog for horizon export.
Definition: uiexpfault.h:35
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
uiBulkFaultImport * impbulkfltdlg_
Definition: uiempartserv.h:213
uiSurfaceMan * manbodydlg_
Definition: uiempartserv.h:235
uiImportFault3D * impfltdlg_
Definition: uiempartserv.h:214
TrcKeySampling selectedrg_
Definition: uiempartserv.h:225
uiSurfaceMan * man2dhordlg_
Definition: uiempartserv.h:231
Definition: uistring.h:89
Definition: uisurfaceman.h:25
Set of BufferString objects.
Definition: bufstringset.h:28
uiCreateHorizon * crhordlg_
Definition: uiempartserv.h:220
Definition: uibulkfaultimp.h:17
Earth Model UI Part Server.
Definition: uiempartserv.h:55
Set of picks with something in common.
Definition: pickset.h:31
uiBulkFaultImport * impbulkfssdlg_
Definition: uiempartserv.h:221
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
uiImportHorizon * imphorgeomdlg_
Definition: uiempartserv.h:211
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:131
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:27
Dialog to create a horizon with a constant Z.
Definition: uicreatehorizon.h:26
Dialog for horizon export.
Definition: uiexphorizon.h:30
Manages the loaded/half loaded EM objects in OpendTect.
Definition: emmanager.h:46
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
Dialog for Horizon Import.
Definition: uiimphorizon.h:40
EM::ObjectID selemid_
Definition: uiempartserv.h:208
bool disponcreation_
Definition: uiempartserv.h:226
Definition: uibulk2dhorizonimp.h:19
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
static const char * sKeySectionID()
Definition: uiempartserv.h:230
uiBulk2DHorizonImport * impbulk2dhordlg_
Definition: uiempartserv.h:222
bool dispLineOnCreation()
Definition: uiempartserv.h:180
uiImportHorizon * imphorattrdlg_
Definition: uiempartserv.h:210
ObjectSet< uiVariogramDisplay > variodlgs_
Definition: uiempartserv.h:228
const char * name() const
Definition: uiempartserv.h:61
EM::EMManager & em_
Definition: uiempartserv.h:209
Position info, often segmented.
Definition: posinfo.h:40
uiSurfaceMan * man3dhordlg_
Definition: uiempartserv.h:232
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
uiSurfaceMan * ma3dfaultdlg_
Definition: uiempartserv.h:233
Services from application level to &#39;Part servers&#39;.
Definition: uiapplserv.h:24
Definition: uiimpfault.h:87
Base class for all EarthModel objects.
Definition: emobject.h:158
Definition: picklocation.h:21
uiExportFault * expfltstickdlg_
Definition: uiempartserv.h:219
Definition: uivariogram.h:45
Definition: uiimpfault.h:76
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:25
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:23
uiExportFault * expfltdlg_
Definition: uiempartserv.h:218
uiExportHorizon * exphordlg_
Definition: uiempartserv.h:217
uiBulkHorizonImport * impbulkhordlg_
Definition: uiempartserv.h:212
Makes available certain services that are needed on a higher level.
Definition: uiapplserv.h:48
bool isEmpty(const NLAModel *mdl)
TrcKeySampling horizon3DDisplayRange() const
Definition: uiempartserv.h:108
Base class for z-axis transforms.
Definition: zaxistransform.h:37
Surface I/O data selection.
Definition: emsurfaceiodata.h:62
uiImportFault3D * impfltstickdlg_
Definition: uiempartserv.h:215
Compound key consisting of ints.
Definition: multiid.h:25
Definition: uibulkhorizonimp.h:18

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