OpendTect  6.3
vismpeseedcatcher.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: Kristofer Tingdahl
8  Date: 4-11-2002
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "vissurveymod.h"
15 #include "visobject.h"
16 
17 #include "attribsel.h"
18 #include "attribdataholder.h"
19 #include "trckeyzsampling.h"
20 #include "datapack.h"
21 #include "emposid.h"
22 #include "geomelement.h"
23 #include "trckey.h"
24 
25 namespace Geometry { class ElementEditor; }
26 namespace MPE { class ObjectEditor; }
27 namespace Attrib { class SelSpec; }
28 namespace visBase { class Dragger; }
29 
31 
32 namespace visSurvey
33 {
34 
35 class EMObjectDisplay;
36 class MPEEditor;
37 class Seis2DDisplay;
38 
39 
41 {
42  friend class MPEClickCatcher;
43 public:
44  MPEClickInfo();
45 
46  bool isLegalClick() const;
47 
48  bool isCtrlClicked() const;
49  bool isShiftClicked() const;
50  bool isAltClicked() const;
51  bool isDoubleClicked() const;
52 
53  const TrcKey& getNode() const;
54  const TrcKey& getPickedNode() const;
55  void setPickedNode(const TrcKey&);
56 
57  const Coord3& getPos() const;
58  int getObjID() const;
59  EM::ObjectID getEMObjID() const; // avail when clicked on hor
60  const TrcKeyZSampling& getObjCS() const;
61  const TrcKeyPath* getObjTKPath() const;
62  int getObjRandomLineID() const;
63  DataPack::ID getObjDataPackID() const;
64  const RegularSeisDataPack* getObjData() const;
65  const Attrib::SelSpec* getObjDataSelSpec() const;
66 
67  Pos::GeomID getGeomID() const;
68  const char* getObjLineName() const;
69  const Attrib::Data2DHolder* getObjLineData() const;
70 
71 protected:
72  void clear();
73 
74  void setLegalClick(bool);
75 
76  void setCtrlClicked(bool);
77  void setShiftClicked(bool);
78  void setAltClicked(bool);
79  void setDoubleClicked(bool);
80  void setNode(const TrcKey&);
81  void setPos(const Coord3&);
82  void setEMObjID(EM::ObjectID);
83  void setObjID(int);
84  void setObjCS(const TrcKeyZSampling&);
85  void setObjTKPath(const TrcKeyPath*);
86  void setObjRandomLineID(int);
87  void setObjDataPackID(DataPack::ID);
88  void setObjData(const RegularSeisDataPack*);
89  void setObjDataSelSpec(const Attrib::SelSpec&);
90 
91  void setGeomID(Pos::GeomID);
92  void setObjLineName(const char*);
93  void setObjLineData(const Attrib::Data2DHolder*);
94 
100 
104 
110  int rdlid_;
112 
117 };
118 
119 
121 {
122 public:
123  static MPEClickCatcher* create()
125 
126  void setSceneEventCatcher(visBase::EventCatcher*);
127  void setDisplayTransformation(const mVisTrans*);
128 
129  const mVisTrans* getDisplayTransformation() const;
130 
134 
135  const MPEClickInfo& info() const;
136  MPEClickInfo& info();
137  const visBase::EventInfo* visInfo() const { return cureventinfo_; }
138 
139  void setTrackerType(const char*);
140  static bool isClickable(const char* trackertype,int visid);
141 
142  void setEditor(MPEEditor*);
143  const MPEEditor* getEditor() const { return editor_; }
144  bool activateSower(const Color&,
145  const TrcKeySampling* =0);
146  bool sequentSowing() const;
147  bool moreToSow() const;
148  void stopSowing();
149 
150 protected:
151  ~MPEClickCatcher();
152  void clickCB(CallBacker*);
153 
154  void sendUnderlying2DSeis(
155  const EMObjectDisplay*,
156  const visBase::EventInfo&);
157  void sendUnderlyingPlanes(
158  const EMObjectDisplay*,
159  const visBase::EventInfo&);
160  void handleObjectOnSeis2DDisplay(Seis2DDisplay*,
161  const Coord3);
162 
163  void allowPickBasedReselection();
164  void sowingEndCB(CallBacker*);
165  void sowingCB(CallBacker*);
166 
171 
173  const char* trackertype_;
174 };
175 
176 } // namespace visSurvey
#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
Notifier< MPEClickCatcher > click
Definition: vismpeseedcatcher.h:131
TrcKey pickednode_
Definition: vismpeseedcatcher.h:101
Definition: visemobjdisplay.h:68
MPEClickInfo info_
Definition: vismpeseedcatcher.h:172
TrcKeyZSampling clickedcs_
Definition: vismpeseedcatcher.h:107
Notifier< MPEClickCatcher > endSowing
Definition: vismpeseedcatcher.h:132
EM::ObjectID clickedemobjid_
Definition: vismpeseedcatcher.h:105
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:30
DataPack::ID datapackid_
Definition: vismpeseedcatcher.h:116
TrcKey clickednode_
Definition: vismpeseedcatcher.h:102
void clear(std::ios &)
Class that holds 2d seismic data or attribute data.
Definition: attribdataholder.h:78
Definition: vismpeseedcatcher.h:40
const visBase::EventInfo * visInfo() const
Definition: vismpeseedcatcher.h:137
VolumeDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:42
visBase::EventCatcher * eventcatcher_
Definition: vismpeseedcatcher.h:167
int clickedobjid_
Definition: vismpeseedcatcher.h:106
bool ctrlclicked_
Definition: vismpeseedcatcher.h:96
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:18
Definition: vismpeeditor.h:46
const TrcKeyPath * rdltkpath_
Definition: vismpeseedcatcher.h:109
const char * trackertype_
Definition: vismpeseedcatcher.h:173
bool altclicked_
Definition: vismpeseedcatcher.h:98
Class to help setup a callback handling.
Definition: notify.h:121
Used for displaying a 2D line.
Definition: visseis2ddisplay.h:35
const RegularSeisDataPack * attrdata_
Definition: vismpeseedcatcher.h:108
3D point or vector
Definition: commontypes.h:57
Definition: vismpeseedcatcher.h:120
VisualObjectImpl
Definition: visobject.h:123
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:25
Attrib::SelSpec attrsel_
Definition: vismpeseedcatcher.h:111
#define mVisTrans
Definition: visdata.h:25
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
Pos::GeomID geomid_
Definition: vismpeseedcatcher.h:114
const mVisTrans * transformation_
Definition: vismpeseedcatcher.h:168
int rdlid_
Definition: vismpeseedcatcher.h:110
Notifier< MPEClickCatcher > sowing
Definition: vismpeseedcatcher.h:133
const MPEEditor * getEditor() const
Definition: vismpeseedcatcher.h:143
Index_Type GeomID
Definition: commontypes.h:48
Definition: visannot.h:40
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
static uiHor3DInterpol * create(uiParent *)
bool doubleclicked_
Definition: vismpeseedcatcher.h:99
Definition: visevent.h:40
Specifies an attribute selection (ID or output number of NN).
Definition: attribsel.h:43
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
#define mCreateDataObj(clss)
Definition: visdata.h:210
Definition: groupedid.h:41
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:26
const visBase::EventInfo * cureventinfo_
Definition: vismpeseedcatcher.h:170
bool legalclick_
Definition: vismpeseedcatcher.h:95
MPEEditor * editor_
Definition: vismpeseedcatcher.h:169
Coord3 clickedpos_
Definition: vismpeseedcatcher.h:103
BufferString linename_
Definition: vismpeseedcatcher.h:115
Definition: arraytesselator.h:19
ConstRefMan< Attrib::Data2DHolder > linedata_
Definition: vismpeseedcatcher.h:113
Definition: visevent.h:83
Semblance Attribute.
Definition: attribdataholder.h:21
bool shiftclicked_
Definition: vismpeseedcatcher.h:97

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