OpendTect-6_4  6.4
visprestackdisplay.h
Go to the documentation of this file.
1 #ifndef visprestackdisplay_h
2 #define visprestackdisplay_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Yuancheng Liu
9  Date: May 2007
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "mousecursor.h"
16 #include "vissurveymod.h"
17 #include "vissurvobj.h"
18 #include "visobject.h"
19 #include "iopar.h"
20 
21 class IOObj;
22 class SeisPSReader;
23 
24 namespace PreStack { class ProcessManager; }
25 namespace visBase
26 {
27  class DepthTabPlaneDragger;
28  class FaceSet;
29  class FlatViewer;
30 }
31 
32 namespace visSurvey
33 {
34 
35 class PlaneDataDisplay;
36 class Seis2DDisplay;
37 
38 
40  public visSurvey::SurveyObject
41 {
42 public:
43 
47  "PreStackDisplay",
48  toUiString(sFactoryKeyword()) );
49 
50  void allowShading(bool yn);
51  void setMultiID(const MultiID& mid);
52  BufferString getObjectName() const;
53  bool isInlCrl() const { return true; }
54  bool isOrientationInline() const;
55  const Coord getBaseDirection() const;
56  StepInterval<int> getTraceRange(const BinID&,
57  bool oncurrentline=true) const;
58 
59  //for 3D only at present
60  DataPack::ID preProcess();
61 
62  bool is3DSeis() const;
63  virtual DataPack::ID getDataPackID(int i=0) const;
64 
65  visBase::FlatViewer* flatViewer() { return flatviewer_; }
66  const visBase::FlatViewer* flatViewer() const { return flatviewer_; }
67  PreStack::ProcessManager& procMgr() { return preprocmgr_; }
68 
69  //3D case
70  bool setPosition(const BinID&);
71  const BinID& getPosition() const;
72  void setSectionDisplay(PlaneDataDisplay*);
73  const PlaneDataDisplay* getSectionDisplay() const;
74  PlaneDataDisplay* getSectionDisplay();
75 
77  NotifierAccess* getMovementNotifier() { return &draggermoving;}
78  const BinID draggerPosition() const { return draggerpos_; }
79 
80  bool hasPosModeManipulator() const { return true; }
81 
82  //2D case
83  const Seis2DDisplay* getSeis2DDisplay() const;
84  bool setSeis2DData(const IOObj* ioobj);
85  bool setSeis2DDisplay(Seis2DDisplay*,int trcnr);
86  void setTraceNr(int trcnr);
87  int traceNr() const { return trcnr_; }
88  const char* lineName() const;
89 
90  bool displayAutoWidth() const { return autowidth_; }
91  void displaysAutoWidth(bool yn);
92  bool displayOnPositiveSide() const {return posside_;}
93  void displaysOnPositiveSide(bool yn);
94  float getFactor() { return factor_; }
95  void setFactor(float scale);
96  float getWidth() { return width_; }
97  void setWidth(float width);
98  BinID getBinID() const { return bid_; }
99  virtual MultiID getMultiID() const { return mid_; }
100 
101  const MouseCursor* getMouseCursor() const { return &mousecursor_; }
102  virtual void getMousePosInfo( const visBase::EventInfo& ei,
103  IOPar& iop ) const
104  { SurveyObject::getMousePosInfo(ei,iop); }
105  virtual void getMousePosInfo(const visBase::EventInfo&,
106  Coord3&,
107  BufferString& val,
108  BufferString& info) const;
109  void otherObjectsMoved(
111  int whichobj );
112 
113 
114  void fillPar(IOPar&) const;
115  bool usePar(const IOPar&);
116  bool updateDisplay() { return updateData(); }
117 
118  static const char* sKeyParent() { return "Parent"; }
119  static const char* sKeyFactor() { return "Factor"; }
120  static const char* sKeyWidth() { return "Width"; }
121  static const char* sKeyAutoWidth() { return "AutoWidth"; }
122  static const char* sKeySide() { return "ShowSide"; }
123 
124 protected:
125  ~PreStackDisplay();
126  void setDisplayTransformation(const mVisTrans*);
127  void setSceneEventCatcher(visBase::EventCatcher*);
128  void updateMouseCursorCB(CallBacker*);
129  void dataChangedCB(CallBacker*);
130  void sectionMovedCB(CallBacker*);
131  void seis2DMovedCB(CallBacker*);
132  bool updateData();
133  int getNearTraceNr(int) const;
134  BinID getNearBinID(const BinID& pos) const;
135 
136  void draggerMotion(CallBacker*);
137  void finishedCB(CallBacker*);
138 
146 
150  int trcnr_;
154 
155  bool posside_;
157  float factor_;
158  float width_;
161 
165 };
166 
167 } // namespace visSurvey
168 
169 #endif
#define mExpClass(module)
Definition: commondefs.h:160
To be able to send and/or receive CallBacks, inherit from this class.
Definition: callback.h:272
bool updateDisplay()
Definition: visprestackdisplay.h:116
Definition: ioobj.h:58
Interval< float > offsetrange_
Definition: visprestackdisplay.h:159
Definition of a mouse cursor, can be either a predefined shape (from the enum, or a file...
Definition: mousecursor.h:26
float width_
Definition: visprestackdisplay.h:158
BinID getBinID() const
Definition: visprestackdisplay.h:98
Notifier< PreStackDisplay > movefinished_
Definition: visprestackdisplay.h:164
SeisPSReader * reader_
Definition: visprestackdisplay.h:162
Export_Basic uiString toUiString(ViewStyle)
Interface class for Notifier. See comments there.
Definition: callback.h:161
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
MouseCursor mousecursor_
Definition: visprestackdisplay.h:142
bool isInlCrl() const
Definition: visprestackdisplay.h:53
visBase::DepthTabPlaneDragger * planedragger_
Definition: visprestackdisplay.h:143
static const char * sKeySide()
Definition: visprestackdisplay.h:122
Coord seis2dpos_
Definition: visprestackdisplay.h:152
Definition: synthseis.h:36
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:289
virtual void getMousePosInfo(const visBase::EventInfo &ei, IOPar &iop) const
Definition: visprestackdisplay.h:102
bool posside_
Definition: visprestackdisplay.h:155
bool displayAutoWidth() const
Definition: visprestackdisplay.h:90
A cartesian coordinate in 2D space.
Definition: coord.h:25
int ID
Definition: datapack.h:38
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:20
BinID bid_
Definition: visprestackdisplay.h:139
Definition: callback.h:254
Used for displaying a 2D line.
Definition: visseis2ddisplay.h:40
Set of pointers to objects.
Definition: commontypes.h:32
static const char * sKeyFactor()
Definition: visprestackdisplay.h:119
PreStack::ProcessManager & procMgr()
Definition: visprestackdisplay.h:67
VisualObjectImpl
Definition: visobject.h:128
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
MultiID mid_
Definition: visprestackdisplay.h:147
int trcnr_
Definition: visprestackdisplay.h:150
#define mVisTrans
Definition: visdata.h:31
float getFactor()
Definition: visprestackdisplay.h:94
Coord basedirection_
Definition: visprestackdisplay.h:151
PlaneDataDisplay * section_
Definition: visprestackdisplay.h:148
static const char * sKeyParent()
Definition: visprestackdisplay.h:118
visBase::FlatViewer * flatViewer()
Definition: visprestackdisplay.h:65
Definition: visdepthtabplanedragger.h:36
bool autowidth_
Definition: visprestackdisplay.h:156
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
Interval< float > zrg_
Definition: visprestackdisplay.h:160
bool displayOnPositiveSide() const
Definition: visprestackdisplay.h:92
Definition: visannot.h:43
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
visBase::FlatViewer * flatviewer_
Definition: visprestackdisplay.h:144
static const char * sKeyWidth()
Definition: visprestackdisplay.h:120
Definition: visflatviewer.h:29
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
bool hasPosModeManipulator() const
Definition: visprestackdisplay.h:80
float getWidth()
Definition: visprestackdisplay.h:96
const BinID draggerPosition() const
Definition: visprestackdisplay.h:78
Definition: visprestackdisplay.h:39
int traceNr() const
Definition: visprestackdisplay.h:87
Base class for all &#39;Display&#39; objects.
Definition: vissurvobj.h:58
IOObj * ioobj_
Definition: visprestackdisplay.h:163
Coord seis2dstoppos_
Definition: visprestackdisplay.h:153
Definition: visevent.h:44
Used for displaying an inline, crossline or timeslice.
Definition: visplanedatadisplay.h:41
Seis2DDisplay * seis2d_
Definition: visprestackdisplay.h:149
Notifier< PreStackDisplay > draggermoving
Definition: visprestackdisplay.h:76
PreStack::ProcessManager & preprocmgr_
Definition: visprestackdisplay.h:145
reads from a prestack seismic data store.
Definition: seispsread.h:34
virtual MultiID getMultiID() const
Definition: visprestackdisplay.h:99
static const char * sKeyAutoWidth()
Definition: visprestackdisplay.h:121
const visBase::FlatViewer * flatViewer() const
Definition: visprestackdisplay.h:66
Orgainizes a number of PreStack::Processors into a chain which can be processed.
Definition: prestackprocessor.h:140
const MouseCursor * getMouseCursor() const
Definition: visprestackdisplay.h:101
NotifierAccess * getMovementNotifier()
Definition: visprestackdisplay.h:77
Definition: visevent.h:87
Compound key consisting of ints.
Definition: multiid.h:25
float factor_
Definition: visprestackdisplay.h:157
visBase::EventCatcher * eventcatcher_
Definition: visprestackdisplay.h:141
BinID draggerpos_
Definition: visprestackdisplay.h:140

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