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

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