OpendTect  6.3
uiodviewer2d.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: Dec 2003
8 ________________________________________________________________________
9 
10 -*/
11 
12 #include "uiodmainmod.h"
13 #include "trckeyzsampling.h"
14 #include "datapack.h"
15 #include "emposid.h"
16 #include "probe.h"
17 #include "uigeom.h"
18 #include "uistring.h"
19 
22 class uiFlatViewWin;
23 class uiMainWin;
24 class uiODMain;
25 class uiODVw2DTreeTop;
26 class uiParent;
27 class uiSlicePos2DView;
28 class uiToolBar;
29 class uiTreeItem;
30 class uiTreeFactorySet;
32 class TaskRunner;
33 class Vw2DDataManager;
34 
35 namespace Attrib { class SelSpec; }
36 namespace FlatView { class AuxData; }
37 namespace ZDomain { class Def; }
38 
44 mExpClass(uiODMain) uiODViewer2D : public OD::PresentationManagedViewer
46 public:
47 
48  mStruct(uiODMain) DispSetup
49  {
50  DispSetup()
51  : initialcentre_(uiWorldPoint::udf())
52  , initialx1pospercm_(mUdf(float))
53  , initialx2pospercm_(mUdf(float)) {}
54  uiWorldPoint initialcentre_;
55  float initialx1pospercm_;
56  float initialx2pospercm_;
57  };
59  DispSetup su=DispSetup());
60  ~uiODViewer2D();
61 
63 
65  { return sViewer2DMgrTypeID; }
66  virtual void setUpView(ProbeLayer::ID id=
67  ProbeLayer::ID::getInvalid());
68  //Invalid means set all layers
69  void setSelSpec(const Attrib::SelSpec*,bool wva);
70 
71  uiParent* viewerParent();
72  uiFlatViewWin* viewwin() { return viewwin_; }
73  const uiFlatViewWin* viewwin() const { return viewwin_; }
74  Vw2DDataManager* dataMgr() { return datamgr_; }
75  const Vw2DDataManager* dataMgr() const { return datamgr_; }
76 
77  uiODVw2DTreeTop* treeTop() { return treetp_; }
78 
79  const uiTreeFactorySet* uiTreeItemFactorySet() const { return tifs_; }
80  bool isItemPresent(const uiTreeItem*) const;
81 
83  { return auxdataeditors_; }
84 
85  Attrib::SelSpec& selSpec( bool wva )
86  { return wva ? wvaselspec_ : vdselspec_; }
87  const Attrib::SelSpec& selSpec( bool wva ) const
88  { return wva ? wvaselspec_ : vdselspec_; }
90  { return createDataPack(selSpec(wva)); }
91  DataPack::ID createDataPack(const Attrib::SelSpec&);
98  bool useStoredDispPars(bool wva);
99  bool isVertical() const;
100 
102  { return probe_.position(); }
103  Pos::GeomID geomID() const;
104 
105  void setUpAux();
106 
108  { return viewstdcontrol_; }
110  { return viewstdcontrol_; }
112  { return slicepos_; }
113 
114  virtual void usePar(const IOPar&);
115  virtual void fillPar(IOPar&) const;
116  virtual void setWinTitle();
117 
118  static const char* sKeyVDSelSpec() { return "VD SelSpec"; }
119  static const char* sKeyWVASelSpec() { return "WVA SelSpec"; }
120  static const char* sKeyPos() { return "Position"; }
121 
126 
127  void getVwr2DObjIDs(TypeSet<int>& vw2dobjids) const;
128 
129  //Horizon 3D
130  void getHor3DVwr2DIDs(EM::ObjectID emid,
131  TypeSet<int>& vw2dids) const;
132  void removeHorizon3D(EM::ObjectID emid);
133  void getLoadedHorizon3Ds(
134  TypeSet<EM::ObjectID>&) const;
135  void addHorizon3Ds(const TypeSet<EM::ObjectID>&);
136  void addNewTrackingHorizon3D(EM::ObjectID);
137  void setupTrackingHorizon3D(EM::ObjectID);
138 
139  //Horizon2D
140  void getHor2DVwr2DIDs(EM::ObjectID emid,
141  TypeSet<int>& vw2dids) const;
142  void removeHorizon2D(EM::ObjectID emid);
143  void getLoadedHorizon2Ds(
144  TypeSet<EM::ObjectID>&) const;
145  void addHorizon2Ds(const TypeSet<EM::ObjectID>&);
146  void addNewTrackingHorizon2D(EM::ObjectID emid);
147  void setupTrackingHorizon2D(EM::ObjectID);
148 
149  //Fault
150  void getFaultVwr2DIDs(EM::ObjectID emid,
151  TypeSet<int>& vw2dids) const;
152  void removeFault(EM::ObjectID emid);
153  void getLoadedFaults(
154  TypeSet<EM::ObjectID>&) const;
155  void addFaults(const TypeSet<EM::ObjectID>&);
156  void addNewTempFault(EM::ObjectID emid);
157  void setupNewTempFault(EM::ObjectID emid);
158 
159  //FaultStickeSet
160  void getFaultSSVwr2DIDs(EM::ObjectID emid,
161  TypeSet<int>& vw2dids) const;
162  void removeFaultSS(EM::ObjectID emid);
163  void getLoadedFaultSSs(
164  TypeSet<EM::ObjectID>&) const;
165  void addFaultSSs(const TypeSet<EM::ObjectID>&);
166  void addNewTempFaultSS(EM::ObjectID emid);
167  void setupNewTempFaultSS(EM::ObjectID emid);
168 
169  //FaultStickeSet2D
170  void getFaultSS2DVwr2DIDs(EM::ObjectID emid,
171  TypeSet<int>& vw2ds) const;
172  void removeFaultSS2D(EM::ObjectID emid);
173  void getLoadedFaultSS2Ds(
174  TypeSet<EM::ObjectID>&) const;
175  void addFaultSS2Ds(const TypeSet<EM::ObjectID>&);
176  void addNewTempFaultSS2D(EM::ObjectID emid);
177  void setupNewTempFaultSS2D(EM::ObjectID emid);
178 
179  //PickSets
180  void getPickSetVwr2DIDs(const DBKey& mid,
181  TypeSet<int>& vw2ids ) const;
182  void removePickSet(const DBKey&);
183  void getLoadedPickSets(DBKeySet&) const;
184  void addPickSets(const DBKeySet&);
185  void setupNewPickSet(const DBKey&);
186 
187  void emitPRRequest(OD::PresentationRequestType);
188  OD::ObjPresentationInfo* getObjPRInfo() const;
189  Probe& getProbe() { return probe_; }
190  const Probe& getProbe() const { return probe_; }
191 
192 protected:
193 
197 
200 
202  DispSetup dispsetup_;
211  int voiidx_;
212 
213 
218 
219  DataPack::ID createDataPackForTransformedZSlice(
220  const Attrib::SelSpec&);
221 
222  DataPack::ID createFlatDataPack(DataPack::ID,int comp);
229  virtual void createViewWin();
230  virtual void createTree(uiMainWin*);
231  virtual void createPolygonSelBut(uiToolBar*);
232  void createViewWinEditors();
233  void setDataPack(DataPack::ID,bool wva,bool isnew);
234  void removeAvailablePacks();
235  void rebuildTree();
236  void updateSlicePos();
237  void updateTransformData();
238 
239  void winCloseCB(CallBacker*);
240  void probeChangedCB(CallBacker*);
241  void posChg(CallBacker*);
242  void itmSelectionChangedCB(CallBacker*);
243  void selectionMode(CallBacker*);
244  void trackSetupCB(CallBacker*);
245  void handleToolClick(CallBacker*);
246  void removeSelected(CallBacker*);
247  void mouseCursorCB(CallBacker*);
248  void mouseMoveCB(CallBacker*);
249 };
Definition: uitoolbar.h:30
const Vw2DDataManager * dataMgr() const
Definition: uiodviewer2d.h:75
#define mExpClass(module)
Definition: commondefs.h:157
uiFlatViewStdControl * viewControl()
Definition: uiodviewer2d.h:109
od_int32 ObjectID
Definition: emposid.h:22
User interface main window.
Definition: uimainwin.h:34
Class that represents non-bitmap data to be displayed in a flatviewer, such as markers, lines and more.
Definition: flatview.h:32
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
const ObjectSet< uiFlatViewAuxDataEditor > & dataEditor()
Definition: uiodviewer2d.h:82
uiFlatViewWin * viewwin_
Definition: uiodviewer2d.h:206
Attrib::SelSpec & vdselspec_
Definition: uiodviewer2d.h:199
OpendTect application top level object.
Definition: uiodmain.h:38
uiSlicePos2DView * slicepos_
Definition: uiodviewer2d.h:194
#define mStruct(module)
Definition: commondefs.h:162
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
const uiTreeFactorySet * uiTreeItemFactorySet() const
Definition: uiodviewer2d.h:79
DataPack::ID createDataPack(bool wva)
Definition: uiodviewer2d.h:89
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
uiTreeFactorySet * tifs_
Definition: uiodviewer2d.h:204
uiODVw2DTreeTop * treetp_
Definition: uiodviewer2d.h:205
Definition: dbkey.h:98
uiODVw2DTreeTop * treeTop()
Definition: uiodviewer2d.h:77
uiFlatViewWin * viewwin()
Definition: uiodviewer2d.h:72
Definition: uiodvw2dtreeitem.h:113
const Attrib::SelSpec & selSpec(bool wva) const
Definition: uiodviewer2d.h:87
Probe & probe_
Definition: uiodviewer2d.h:201
Vw2DDataManager * datamgr_
Definition: uiodviewer2d.h:203
static Point2D< double > udf()
Definition: geometry.h:78
uiODMain & appl_
Definition: uiodviewer2d.h:210
static const char * sKeyVDSelSpec()
Definition: uiodviewer2d.h:118
Definition: uistring.h:88
Definition: uiparent.h:24
Definition: view2ddataman.h:22
Attrib::SelSpec & selSpec(bool wva)
Definition: uiodviewer2d.h:85
int edittbid_
Definition: uiodviewer2d.h:214
Definition: mouseevent.h:206
uiSlicePos2DView * slicePos()
Definition: uiodviewer2d.h:111
#define mDeclInstanceCreatedNotifierAccess(clss)
Definition: notify.h:235
Definition: groupedid.h:40
FlatView::AuxData * marker_
Definition: uiodviewer2d.h:208
const Probe & getProbe() const
Definition: uiodviewer2d.h:190
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Class that can execute a task.
Definition: task.h:193
MouseCursorExchange & mousecursorexchange_
Definition: uiodviewer2d.h:207
Toolbar for setting slice position _ 2D viewer.
Definition: uiflatviewslicepos.h:21
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
Notifier< uiODViewer2D > posChanged
Definition: uiodviewer2d.h:125
ObjectSet< uiFlatViewAuxDataEditor > auxdataeditors_
Definition: uiodviewer2d.h:196
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
Notifier< uiODViewer2D > dataChanged
Definition: uiodviewer2d.h:124
The standard tools to control uiFlatViewer(s).
Definition: uiflatviewstdcontrol.h:49
static const char * sKeyPos()
Definition: uiodviewer2d.h:120
uiFlatViewStdControl * viewstdcontrol_
Definition: uiodviewer2d.h:195
Probe & getProbe()
Definition: uiodviewer2d.h:189
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
int polyseltbid_
Definition: uiodviewer2d.h:215
void removeFault(EM::Fault &)
bool isVertical(OD::Orientation orient)
Definition: oduicommon.h:87
Index_Type GeomID
Definition: commontypes.h:48
static const char * sKeyWVASelSpec()
Definition: uiodviewer2d.h:119
TrcKeyZSampling getTrcKeyZSampling() const
Definition: uiodviewer2d.h:101
const uiFlatViewStdControl * viewControl() const
Definition: uiodviewer2d.h:107
A 2D Viewer.
Definition: uiodviewer2d.h:44
Vw2DDataManager * dataMgr()
Definition: uiodviewer2d.h:74
DispSetup dispsetup_
Definition: uiodviewer2d.h:202
Notifier< uiODViewer2D > viewWinClosed
Definition: uiodviewer2d.h:123
static GroupID get(GroupNrT i)
Definition: groupedid.h:40
int voiidx_
Definition: uiodviewer2d.h:211
PresentationRequestType
Definition: odpresentationmgr.h:32
bool ispolyselect_
Definition: uiodviewer2d.h:217
static OD::ViewerTypeID sViewer2DMgrTypeID(OD::ViewerTypeID::get(1))
OpendTect.
Definition: commontypes.h:25
const uiFlatViewWin * viewwin() const
Definition: uiodviewer2d.h:73
OD::ViewerTypeID viewerTypeID() const
Definition: uiodviewer2d.h:64
Specifies an attribute selection (ID or output number of NN).
Definition: attribsel.h:43
Notifier< uiODViewer2D > viewWinAvailable
Definition: uiodviewer2d.h:122
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
Flatview auxiliary data editor.
Definition: uiflatauxdataeditor.h:21
Definition: groupedid.h:41
uiString basetxt_
Definition: uiodviewer2d.h:209
FixedString ID()
Definition: keystrs.h:71
Base class for windows containing one or more uiFlatViewer(s).
Definition: uiflatviewwin.h:29
Definition: uitreeitem.h:285
Definition: bitmap2rgb.h:15
Definition: probe.h:82
int picksettingstbid_
Definition: uiodviewer2d.h:216
are helping classes for uiTreeViews, wich makes it easy to bundle inteligence and data to treeitems...
Definition: uitreeitem.h:34
Attrib::SelSpec & wvaselspec_
Definition: uiodviewer2d.h:198
Definition: odpresentationmgr.h:60
Semblance Attribute.
Definition: attribdataholder.h:21
Definition: zdomain.h:18

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