OpendTect  6.3
uiempartserv.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: Sep 2002
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uiearthmodelmod.h"
14 
15 #include "emposid.h"
16 #include "trckeysampling.h"
17 #include "dbkey.h"
18 #include "position.h"
19 #include "uiapplserv.h"
20 #include "uistring.h"
21 
22 
23 class BinIDValueSet;
24 class BufferStringSet;
25 class TrcKeyZSampling;
26 class DataPointSet;
27 class TrcKeySampling;
28 class SurfaceInfo;
29 class ZAxisTransform;
30 class uiBulkFaultImport;
32 class uiCreateHorizon;
33 class uiExportFault;
34 class uiExportHorizon;
35 class uiImportFault3D;
37 class uiImportHorizon;
38 class uiSurfaceMan;
39 class uiVariogramDisplay;
40 
41 namespace EM { class EMObject; class EMManager; class SurfaceIODataSelection; }
42 namespace Pick { class Set; }
43 namespace PosInfo { class Line2DData; }
44 
45 template <class T> class Array2D;
46 
47 
52 public:
54  ~uiEMPartServer();
55 
56  const char* name() const { return "EarthModel"; }
57 
58  // Services
59  bool import3DHorGeom(bool bulk=false);
60  bool import3DHorAttr();
61  bool export3DHorizon();
62  bool export2DHorizon();
63  bool importFault(bool bulk);
64  bool importFaultStickSet();
65  void import2DFaultStickset();
66  bool exportFault(bool single=true);
67  bool exportFaultStickSet(bool single=true);
68  void createHorWithConstZ(bool is2d);
69 
70  DBKey getStorageID(const EM::ObjectID&) const;
71  EM::ObjectID getObjectID(const DBKey&) const;
72 
73  uiString getName(const EM::ObjectID&) const;
74  uiString getType(const EM::ObjectID&) const;
75 
76  int nrAttributes(const EM::ObjectID&) const;
77  bool isGeometryChanged(const EM::ObjectID&) const;
78  bool isChanged(const EM::ObjectID&) const;
79  bool isEmpty(const EM::ObjectID&) const;
80  bool isFullResolution(const EM::ObjectID&) const;
81  bool isFullyLoaded(const EM::ObjectID&) const;
82 
83  void displayEMObject(const DBKey&);
84  bool fillHoles(const EM::ObjectID&,bool);
86  bool filterSurface(const EM::ObjectID&);
88  void fillPickSet(Pick::Set&,DBKey);
89  void deriveHor3DFrom2D(const EM::ObjectID&);
90  bool askUserToSave(const EM::ObjectID&,bool withcancl) const;
96  { return selectedrg_; }
97  void setHorizon3DDisplayRange(const TrcKeySampling&);
100  void selectHorizons(ObjectSet<EM::EMObject>&,bool is2d);
102  void selectFaults(ObjectSet<EM::EMObject>&,bool is2d);
104  void selectFaultStickSets(ObjectSet<EM::EMObject>&);
106  void selectBodies(ObjectSet<EM::EMObject>&);
108  bool showLoadAuxDataDlg(const EM::ObjectID&);
109  int loadAuxData(const EM::ObjectID&,const char*,
110  bool removeold=true);
113  bool loadAuxData(const EM::ObjectID&,const BufferStringSet&,
114  bool removeold=true);
115 
116  bool showLoadFaultAuxDataDlg(const EM::ObjectID&);
117  bool storeFaultAuxData(const EM::ObjectID& id,
118  BufferString& auxdatanm,
119  const Array2D<float>& data);
120  void manageSurfaces(const char* typ);
121  void manage2DHorizons();
122  void manage3DHorizons();
123  void manageFaultStickSets();
124  void manage3DFaults();
125  void manageBodies();
126  bool loadSurface(const DBKey&,
127  const EM::SurfaceIODataSelection* s=0);
128  void getSurfaceInfo(ObjectSet<SurfaceInfo>&);
129  static void getAllSurfaceInfo(ObjectSet<SurfaceInfo>&,bool);
130  void getSurfaceDef3D(const TypeSet<EM::ObjectID>&,
131  BinIDValueSet&,
132  const TrcKeySampling&) const;
133  void getSurfaceDef2D(const DBKeySet&,
134  const BufferStringSet& sellines,
138 
139  bool storeObject(const EM::ObjectID&,
140  bool storeas=false) const;
141  bool storeObject(const EM::ObjectID&,bool storeas,
142  DBKey& storagekey,
143  float shift=0) const;
144  bool storeAuxData(const EM::ObjectID&,
145  BufferString& auxdataname,
146  bool storeas=false) const;
147  int setAuxData(const EM::ObjectID&,
148  DataPointSet&,const char* nm,int valnr,
149  float shift);
150  bool getAuxData(const EM::ObjectID&,int auxdatanr,
151  DataPointSet&, float& shift) const;
152  bool getAllAuxData(const EM::ObjectID&,DataPointSet&,
153  TypeSet<float>* shfs=0,
154  const TrcKeyZSampling* cs=0) const;
155  bool interpolateAuxData(const EM::ObjectID&,const char* nm,
156  DataPointSet& res);
157  bool filterAuxData(const EM::ObjectID&,const char* nm,
158  DataPointSet& res);
159  bool computeVariogramAuxData(const EM::ObjectID&,const char*,
160  DataPointSet&);
161  bool attr2Geom(const EM::ObjectID&,const char* nm,
162  const DataPointSet&);
163  bool geom2Attr(const EM::ObjectID&);
164  ZAxisTransform* getHorizonZAxisTransform(bool is2d);
165 
166  DBKey genRandLine(int opt);
167  bool dispLineOnCreation() { return disponcreation_; }
168 
169  void removeUndo();
170 
171  static int evDisplayHorizon();
172  static int evRemoveTreeObject();
173 
174  // Interaction stuff
175  const EM::ObjectID& selEMID() const { return selemid_; }
176  EM::EMObject* selEMObject();
177 
178  void removeTreeObject(const EM::ObjectID&);
179 
180  void managePreLoad();
181  void fillPar(IOPar&) const;
182  bool usePar(const IOPar&);
183 
184 protected:
185 
186  void selectSurfaces(ObjectSet<EM::EMObject>&,
187  const char* type);
188  bool loadAuxData(const EM::ObjectID&,const TypeSet<int>&,
189  bool removeold=true);
190  bool changeAuxData(const EM::ObjectID&,const char* nm,
191  bool interp,DataPointSet& res);
192  void importReadyCB(CallBacker*);
193  void survChangedCB(CallBacker*);
194  void displayOnCreateCB(CallBacker*);
195 
209 
212 
214 
215  static const char* sKeySectionID() { return "Section ID"; }
221 };
const EM::ObjectID & selEMID() const
Definition: uiempartserv.h:175
uiImportFaultStickSet2D * impfss2ddlg_
Definition: uiempartserv.h:204
#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
uiSurfaceMan * manfssdlg_
Definition: uiempartserv.h:219
Set of data points with group selection.
Definition: datapointset.h:47
Surface info name/attribname with an ID (usually the EM-ID).
Definition: surfaceinfo.h:19
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Dialog for horizon export.
Definition: uiexpfault.h:28
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
uiBulkFaultImport * impbulkfltdlg_
Definition: uiempartserv.h:202
uiSurfaceMan * manbodydlg_
Definition: uiempartserv.h:220
Definition: dbkey.h:98
uiImportFault3D * impfltdlg_
Definition: uiempartserv.h:201
TrcKeySampling selectedrg_
Definition: uiempartserv.h:210
uiSurfaceMan * man2dhordlg_
Definition: uiempartserv.h:216
Definition: uistring.h:88
Definition: uisurfaceman.h:23
Set of BufferString objects.
Definition: bufstringset.h:25
uiCreateHorizon * crhordlg_
Definition: uiempartserv.h:208
Definition: uibulkfaultimp.h:17
Earth Model UI Part Server.
Definition: uiempartserv.h:50
Monitorable set of pick locations.
Definition: pickset.h:41
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
uiImportHorizon * imphorgeomdlg_
Definition: uiempartserv.h:199
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:127
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:25
Dialog to create a horizon with a constant Z.
Definition: uicreatehorizon.h:24
Dialog for horizon export.
Definition: uiexphorizon.h:26
Manages the loaded/half loaded EM objects in OpendTect.
Definition: emmanager.h:42
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
Dialog for Horizon Import.
Definition: uiimphorizon.h:38
EM::ObjectID selemid_
Definition: uiempartserv.h:196
bool disponcreation_
Definition: uiempartserv.h:211
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
static const char * sKeySectionID()
Definition: uiempartserv.h:215
bool dispLineOnCreation()
Definition: uiempartserv.h:167
uiImportHorizon * imphorattrdlg_
Definition: uiempartserv.h:198
ObjectSet< uiVariogramDisplay > variodlgs_
Definition: uiempartserv.h:213
const char * name() const
Definition: uiempartserv.h:56
EM::EMManager & em_
Definition: uiempartserv.h:197
Position info, often segmented.
Definition: posinfo.h:38
uiSurfaceMan * man3dhordlg_
Definition: uiempartserv.h:217
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
uiSurfaceMan * ma3dfaultdlg_
Definition: uiempartserv.h:218
bool isEmpty(const char *)
Services from application level to &#39;Part servers&#39;.
Definition: uiapplserv.h:22
Definition: uiimpfault.h:85
Base class for all EarthModel objects.
Definition: emobject.h:117
Definition: picklocation.h:19
uiExportFault * expfltstickdlg_
Definition: uiempartserv.h:207
Definition: uivariogram.h:43
Definition: uiimpfault.h:74
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: embody.h:23
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:21
uiExportFault * expfltdlg_
Definition: uiempartserv.h:206
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
uiExportHorizon * exphordlg_
Definition: uiempartserv.h:205
uiBulkHorizonImport * impbulkhordlg_
Definition: uiempartserv.h:200
Makes available certain services that are needed on a higher level.
Definition: uiapplserv.h:46
TrcKeySampling horizon3DDisplayRange() const
Definition: uiempartserv.h:95
Base class for z-axis transforms.
Definition: zaxistransform.h:35
Surface I/O data selection.
Definition: emsurfaceiodata.h:60
uiImportFault3D * impfltstickdlg_
Definition: uiempartserv.h:203
Definition: uibulkhorizonimp.h:16

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