OpendTect  6.3
uiodviewer2dmgr.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  CopyRight: (C) dGB Beheer B.V.
7  Author: Umesh Sinha
8  Date: Apr 2010
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uiodmainmod.h"
14 #include "uiodviewer2d.h"
15 #include "callback.h"
16 #include "datapack.h"
17 #include "emposid.h"
18 #include "flatview.h"
19 #include "geom2dintersections.h"
20 #include "odpresentationmgr.h"
21 #include "uigeom.h"
22 #include "uigraphicsviewbase.h"
23 #include "uiodapplmgr.h"
24 #include "uiodviewer2dposgrp.h"
25 
26 class Probe;
27 class uiFlatViewer;
28 class uiTreeFactorySet;
29 class MouseEventHandler;
30 class TrcKeyZSampling;
31 class Vw2DDataObject;
32 namespace Attrib { class SelSpec; }
33 
35 
36 mExpClass(uiODMain) uiODViewer2DMgr : public OD::VwrTypePresentationMgr
38 public:
39 
41  { return theViewerTypeID(); }
43  { return theViewer2DTypeID; }
44 
45  static void initClass();
47  {
48  SelectedAuxAnnot(int auxposidx=-1,
49  bool isx1=true,bool selected=false)
50  : auxposidx_(auxposidx)
51  , isx1_(isx1)
52  , oldauxpos_(mUdf(float))
53  , isselected_(selected) {}
55  bool isx1_;
57  float oldauxpos_;
58  bool isValid() const { return auxposidx_>=0;}
59  };
60 
61  uiODViewer2D* getParent2DViewer(int vw2dobjid);
62  uiODViewer2D* find2DViewer(OD::ViewerObjID id);
63  uiODViewer2D* find2DViewer(const MouseEventHandler&);
64  uiODViewer2D* find2DViewer(const Pos::GeomID&);
65  uiODViewer2D* find2DViewer(const TrcKeyZSampling&);
66  int nr2DViewers() const;
67 
68  OD::ViewerObjID displayIn2DViewer(
69  Probe&,ProbeLayer::ID curid
70  =ProbeLayer::ID::getInvalid(),
71  uiODViewer2D::DispSetup su
72  =uiODViewer2D::DispSetup() );
73  void remove2DViewer(OD::ViewerObjID id);
74 
75  uiTreeFactorySet* treeItemFactorySet2D() { return tifs2d_; }
76  uiTreeFactorySet* treeItemFactorySet3D() { return tifs3d_; }
77  bool isItemPresent(const uiTreeItem*) const;
78 
79  //3D Horizons
80  void getHor3DVwr2DIDs( EM::ObjectID emid,
81  TypeSet<int>& vw2dids) const;
82  void removeHorizon3D(EM::ObjectID emid);
83  void addHorizon3Ds(const TypeSet<EM::ObjectID>&);
84  void addNewTrackingHorizon3D(EM::ObjectID mid);
85  void addNewTrackingHorizon3D(EM::ObjectID mid,
86  int sceneid);
87  void getLoadedHorizon3Ds(
88  TypeSet<EM::ObjectID>&) const;
89  // 2D Horizons
90  void getHor2DVwr2DIDs( EM::ObjectID emid,
91  TypeSet<int>& vw2dids) const;
92  void removeHorizon2D(EM::ObjectID emid);
93  void getLoadedHorizon2Ds(
94  TypeSet<EM::ObjectID>&) const;
95  void addHorizon2Ds(const TypeSet<EM::ObjectID>&);
96  void addNewTrackingHorizon2D(EM::ObjectID mid);
97  void addNewTrackingHorizon2D(EM::ObjectID mid,
98  int sceneid);
99 
100  //Faults
101  void removeFault(EM::ObjectID emid);
102  void addFaults(const TypeSet<EM::ObjectID>&);
103  void addNewTempFault(EM::ObjectID mid);
104  void addNewTempFault(EM::ObjectID mid,int sceneid);
105  void getLoadedFaults( TypeSet<EM::ObjectID>&) const;
106 
107  //FaultStickSet
108  void getFaultSSVwr2DIDs( EM::ObjectID emid,
109  TypeSet<int>& vw2ids) const;
110  void removeFaultSS(EM::ObjectID emid);
111  void addFaultSSs(const TypeSet<EM::ObjectID>&);
112  void addNewTempFaultSS(EM::ObjectID mid);
113  void addNewTempFaultSS(EM::ObjectID mid,int sceneid);
114  void getLoadedFaultSSs(TypeSet<EM::ObjectID>&) const;
115 
116  void getVwr2DObjIDs(TypeSet<int>& vw2ids) const;
117  //FaultStickSet2D
118  void getFaultSS2DVwr2DIDs( EM::ObjectID emid,
119  TypeSet<int>& vw2ids) const;
120  void removeFaultSS2D(EM::ObjectID emid);
121  void addFaultSS2Ds(const TypeSet<EM::ObjectID>&);
122  void addNewTempFaultSS2D(EM::ObjectID mid);
123  void addNewTempFaultSS2D(EM::ObjectID mid,
124  int sceneid);
125  void getLoadedFaultSS2Ds(
126  TypeSet<EM::ObjectID>&) const;
127 
128  //PickSets
129  void getPickSetVwr2DIDs(const DBKey& mid,
130  TypeSet<int>& vw2ids) const;
131  void removePickSet(const DBKey&);
132  void getLoadedPickSets(DBKeySet&) const;
133  void addPickSets(const DBKeySet&);
134 
135  virtual void request( OD::ViewerID originvwrid,
137  const IOPar& prinfopar);
138 
139 
140  static int cNameColumn() { return 0; }
141  static int cColorColumn() { return 1; }
142 
143  static const char* sKeyVisID() { return "VisID"; }
144  static const char* sKeyAttrID() { return "Attrib ID"; }
145  static const char* sKeyWVA() { return "WVA"; }
146 
149 
150 protected:
151 
153  ~uiODViewer2DMgr();
154 
155  uiODViewer2D* getViewer2D(int idx);
156  const uiODViewer2D* getViewer2D(int idx) const;
160 
163 
165 
166  inline uiODApplMgr& applMgr() { return appl_.applMgr(); }
167  inline uiVisPartServer& visServ() { return *applMgr().visServer(); }
168 
169  void surveyChangedCB(CallBacker*);
170  void viewObjAdded(CallBacker*);
171  void viewObjToBeRemoved(CallBacker*);
172  void viewWinClosedCB(CallBacker*);
173  void vw2DPosChangedCB(CallBacker*);
174  void homeZoomChangedCB(CallBacker*);
175  void mouseClickCB(CallBacker*);
176  void mouseClickedCB(CallBacker*);
177  void mouseMoveCB(CallBacker*);
178 
179  Probe* createNewProbe(const TrcKeyZSampling&) const;
180  void fillProbeFromExisting(
181  Probe&,const uiODViewer2D&) const;
182  void attachNotifiersAndSetAuxData(uiODViewer2D*);
183  Line2DInterSection::Point intersectingLineID(const uiODViewer2D*,
184  float pos) const;
185  int intersection2DIdx(Pos::GeomID) const;
186  void getVWR2DDataGeomIDs(const uiODViewer2D*,
187  TypeSet<Pos::GeomID>&) const;
188  void reCalc2DIntersetionIfNeeded(Pos::GeomID);
189  void setAllIntersectionPositions();
190  void setVWR2DIntersectionPositions(uiODViewer2D*);
191  void handleLeftClick(uiODViewer2D*);
192  void setAuxAnnotLineStyles(uiFlatViewer&,bool forx1);
193  void setupHorizon3Ds(uiODViewer2D*);
194  void setupHorizon2Ds(uiODViewer2D*);
195  void setupFaults(uiODViewer2D*);
196  void setupFaultSSs(uiODViewer2D*);
197  void setupPickSets(uiODViewer2D*);
198  void setupCurInterpItem(uiODViewer2D*);
199  void reSetPrevDragMode(uiODViewer2D*);
200 
201  void fillPar(IOPar&) const;
202  void usePar(const IOPar&);
203 
204  friend class uiODMain;
205 };
TypeSet< Pos::GeomID > geom2dids_
Definition: uiodviewer2dmgr.h:159
#define mExpClass(module)
Definition: commondefs.h:157
od_int32 ObjectID
Definition: emposid.h:22
uiTreeFactorySet * treeItemFactorySet3D()
Definition: uiodviewer2dmgr.h:76
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
SelectedAuxAnnot selauxannot_
Definition: uiodviewer2dmgr.h:158
Definition: geom2dintersections.h:58
Line2DInterSectionSet * l2dintersections_
Definition: uiodviewer2dmgr.h:157
uiODMain & appl_
Definition: uiodviewer2dmgr.h:164
bool isselected_
Definition: uiodviewer2dmgr.h:56
Application level manager - ties part servers together.
Definition: uiodapplmgr.h:53
uiVisPartServer & visServ()
Definition: uiodviewer2dmgr.h:167
OpendTect application top level object.
Definition: uiodmain.h:38
static const char * sKeyVisID()
Definition: uiodviewer2dmgr.h:143
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
OD::ViewerTypeID viewerTypeID() const
Definition: uiodviewer2dmgr.h:40
static const char * sKeyAttrID()
Definition: uiodviewer2dmgr.h:144
The Visualization Part Server.
Definition: uivispartserv.h:60
static OD::ViewerTypeID theViewer2DTypeID(OD::ViewerTypeID::get(1))
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
SelectedAuxAnnot(int auxposidx=-1, bool isx1=true, bool selected=false)
Definition: uiodviewer2dmgr.h:48
Definition: odpresentationmgr.h:36
Definition: dbkey.h:98
static int cNameColumn()
Definition: uiodviewer2dmgr.h:140
uiTreeFactorySet * tifs2d_
Definition: uiodviewer2dmgr.h:161
Definition: groupedid.h:40
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
uiTreeFactorySet * tifs3d_
Definition: uiodviewer2dmgr.h:162
Definition: uiodviewer2dmgr.h:36
uiTreeFactorySet * treeItemFactorySet2D()
Definition: uiodviewer2dmgr.h:75
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
uiODApplMgr & applMgr()
Definition: uiodviewer2dmgr.h:166
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
Definition: view2ddata.h:20
Definition: mouseevent.h:166
static OD::ViewerTypeID theViewerTypeID()
Definition: uiodviewer2dmgr.h:42
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
void removeFault(EM::Fault &)
Index_Type GeomID
Definition: commontypes.h:48
A 2D Viewer.
Definition: uiodviewer2d.h:44
CNotifier< uiODViewer2DMgr, int > vw2dObjAdded
Definition: uiodviewer2dmgr.h:147
bool isx1_
Definition: uiodviewer2dmgr.h:55
static const char * sKeyWVA()
Definition: uiodviewer2dmgr.h:145
static GroupID get(GroupNrT i)
Definition: groupedid.h:40
PresentationRequestType
Definition: odpresentationmgr.h:32
OpendTect.
Definition: commontypes.h:25
static int cColorColumn()
Definition: uiodviewer2dmgr.h:141
CNotifier< uiODViewer2DMgr, int > vw2dObjToBeRemoved
Definition: uiodviewer2dmgr.h:148
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
Definition: groupedid.h:41
float oldauxpos_
Definition: uiodviewer2dmgr.h:57
Definition: uiodviewer2dmgr.h:46
uiODApplMgr & applMgr()
Definition: uiodmain.h:48
FixedString ID()
Definition: keystrs.h:71
bool isValid() const
Definition: uiodviewer2dmgr.h:58
Definition: geom2dintersections.h:99
Definition: uitreeitem.h:285
int auxposidx_
Definition: uiodviewer2dmgr.h:54
Definition: probe.h:82
Fulfills the FlatView::Viewer specifications using &#39;ui&#39; classes.
Definition: uiflatviewer.h:31
are helping classes for uiTreeViews, wich makes it easy to bundle inteligence and data to treeitems...
Definition: uitreeitem.h:34
static void initClass()
Semblance Attribute.
Definition: attribdataholder.h:21

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