OpendTect-6_4  6.4
uimpepartserv.h
Go to the documentation of this file.
1 #ifndef uimpepartserv_h
2 #define uimpepartserv_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: K. Tingdahl
9  Date: December 2004
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "uimpemod.h"
16 #include "attribsel.h"
17 #include "uiapplserv.h"
18 #include "multiid.h"
19 #include "trckeyzsampling.h"
20 #include "datapack.h"
21 #include "emposid.h"
22 #include "emtracker.h"
23 
24 class BufferStringSet;
25 
26 namespace Geometry { class Element; }
27 namespace MPE { class uiSetupGroup; class DataHolder; }
28 namespace Attrib { class DescSet; class DataCubes; class Data2DArray; }
29 
30 
35 public:
37  ~uiMPEPartServer();
38  void setCurrentAttribDescSet(const Attrib::DescSet*);
39  const Attrib::DescSet* getCurAttrDescSet(bool is2d) const;
40 
41  const char* name() const { return "MPE";}
42 
43  int getTrackerID(const EM::ObjectID&) const;
44  int getTrackerID(const char* name) const;
45  void getTrackerTypes(BufferStringSet&) const;
46  bool addTracker(const char* trackertype,int sceneid);
47  int addTracker(const EM::ObjectID&,
48  const Coord3& pos);
57  EM::ObjectID getEMObjectID(int trackerid) const;
58  int getCurSceneID() const { return cursceneid_; }
59 
60  bool canAddSeed(int trackerid) const;
61 
62  void enableTracking(int trackerid,bool yn);
63  bool isTrackingEnabled(int trackerid) const;
64 
65  bool showSetupDlg(const EM::ObjectID&,
66  const EM::SectionID&);
68  bool showSetupGroupOnTop(const EM::ObjectID&,
69  const char* grpnm);
70  void useSavedSetupDlg(const EM::ObjectID&,
71  const EM::SectionID&);
72  MPE::uiSetupGroup* getSetupGroup() { return setupgrp_; }
73 
74  int activeTrackerID() const;
77  static int evGetAttribData();
78  bool is2D() const;
83  TrcKeyZSampling getAttribVolume(const Attrib::SelSpec&) const;
87  const Attrib::SelSpec* getAttribSelSpec() const;
88  void setAttribData(const Attrib::SelSpec&,
89  DataPack::ID);
90 
91  static int evCreate2DSelSpec();
92  Pos::GeomID getGeomID() const;
93  const char* get2DLineName() const;
94  const char* get2DAttribName() const;
95  void set2DSelSpec(const Attrib::SelSpec&);
96 
97  static int evStartSeedPick();
98  static int evEndSeedPick();
99 
100  static int evAddTreeObject();
102  static int evRemoveTreeObject();
104  static int evUpdateTrees();
105  static int evUpdateSeedConMode();
106  static int evStoreEMObject();
107  static int evSetupLaunched();
108  static int evSetupClosed();
109  static int evInitFromSession();
110  static int evHorizonTracking();
111 
112  void loadTrackSetupCB(CallBacker*);
113  bool prepareSaveSetupAs(const MultiID&);
114  bool saveSetupAs(const MultiID&);
115  bool saveSetup(const MultiID&);
116  bool readSetup(const MultiID&);
117 
118  bool sendMPEEvent(int);
119 
120  void fillPar(IOPar&) const;
121  bool usePar(const IOPar&);
122 
123 protected:
124  void activeVolumeChange(CallBacker*);
125  void loadEMObjectCB(CallBacker*);
126  void mergeAttribSets(const Attrib::DescSet& newads,
127  MPE::EMTracker&);
128  bool initSetupDlg(EM::EMObject*& emobj,
129  MPE::EMTracker*& tracker,
130  const EM::SectionID& sid,
131  bool freshdlg=false);
132 
135 
136  //Interaction variables
141 
142  //2D interaction
145 
146  void aboutToAddRemoveSeed(CallBacker*);
147  void seedAddedCB(CallBacker*);
149  void trackerWinClosedCB(CallBacker*);
150 
155 
156  void modeChangedCB(CallBacker*);
157  void eventChangedCB(CallBacker*);
158  void propertyChangedCB(CallBacker*);
159  void correlationChangedCB(CallBacker*);
160  void settingsChangedCB(CallBacker*);
161 
162  void nrHorChangeCB(CallBacker*);
163 
164  void noTrackingRemoval();
165  void cleanSetupDependents();
166 
168 
169 private:
170  static uiString sYesAskGoOnStr();
171  static uiString sNoAskGoOnStr();
172 
173 public:
174  void fillTrackerSettings(int trackerid);
175 };
176 
177 #endif
od_int16 SectionID
Definition: emposid.h:25
#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
bool seedhasbeenpicked_
Definition: uimpepartserv.h:152
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:32
Set of attribute descriptions.
Definition: attribdescset.h:35
int initialundoid_
Definition: uimpepartserv.h:151
const Attrib::DescSet * attrset2d_
Definition: uimpepartserv.h:134
Tracks EM objects.
Definition: emtracker.h:40
Definition: uistring.h:89
Set of BufferString objects.
Definition: bufstringset.h:28
int ID
Definition: datapack.h:38
bool seedswithoutattribsel_
Definition: uimpepartserv.h:154
Attrib::SelSpec lineselspec_
Definition: uimpepartserv.h:144
int activetrackerid_
Definition: uimpepartserv.h:138
uiMPEEngine & uiMPE()
Access function for an instance (and normally the only instance) of MPE::uiMPEEngine.
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
MPE::uiSetupGroup * setupgrp_
Definition: uimpepartserv.h:167
int getCurSceneID() const
Definition: uimpepartserv.h:58
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
int cursceneid_
Definition: uimpepartserv.h:140
MPE::uiSetupGroup * getSetupGroup()
Definition: uimpepartserv.h:72
Implementation of Tracking part server interface.
Definition: uimpepartserv.h:33
const Attrib::SelSpec * eventattrselspec_
Definition: uimpepartserv.h:137
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
A cartesian coordinate in 3D space.
Definition: coord.h:72
bool setupbeingupdated_
Definition: uimpepartserv.h:153
Index_Type GeomID
Definition: commontypes.h:52
const char * name() const
Definition: uimpepartserv.h:41
Definition: uimpe.h:56
Services from application level to &#39;Part servers&#39;.
Definition: uiapplserv.h:24
Base class for all EarthModel objects.
Definition: emobject.h:158
bool is2D(const PicksType &picks)
Definition: pickset.h:142
Specifies an attribute selection (ID or output number of NN).
Definition: attribsel.h:45
Makes available certain services that are needed on a higher level.
Definition: uiapplserv.h:48
Pos::GeomID geomid_
Definition: uimpepartserv.h:143
Definition: arraytesselator.h:21
int temptrackerid_
Definition: uimpepartserv.h:139
Compound key consisting of ints.
Definition: multiid.h:25
Semblance Attribute.
Definition: attribdataholder.h:25
EM::ObjectID trackercurrentobject_
Definition: uimpepartserv.h:148
const Attrib::DescSet * attrset3d_
Definition: uimpepartserv.h:133

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