OpendTect  6.3
viswelldisplay.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 
15 #include "vissurveymod.h"
16 #include "visobject.h"
17 #include "vissurvobj.h"
18 #include "viswell.h"
19 #include "dbkey.h"
20 #include "ranges.h"
21 #include "welllogdisp.h"
22 #include "welldata.h"
23 #include "factory.h"
24 
25 namespace OD { class LineStyle; }
26 
27 namespace visBase
28 {
29  class MarkerSet;
30  class EventCatcher;
31  class EventInfo;
32  class Transformation;
33 }
34 
35 namespace Well
36 {
37  class Data;
38  class DisplayProperties;
39  class Log;
40  class LogDisplayPars;
41  class Track;
42 }
43 
44 namespace visSurvey
45 {
46 class Scene;
47 
54  , public visSurvey::SurveyObject
56 public:
57  WellDisplay();
60  "WellDisplay",
61  toUiString(sFactoryKeyword()) )
62 
63  uiRetVal setDBKey(const DBKey&);
64  DBKey getDBKey() const { return wellid_; }
65 
66  //track
67  void fillTrackParams(visBase::Well::TrackParams&);
68 
69  bool wellTopNameShown() const;
70  void showWellTopName(bool);
71  bool wellBotNameShown() const;
72  void showWellBotName(bool);
73  TypeSet<Coord3> getWellCoords() const;
74 
75  //markers
76  void fillMarkerParams(visBase::Well::MarkerParams&);
77 
78  bool canShowMarkers() const;
79  bool markersShown() const;
80  void showMarkers(bool);
81  bool markerNameShown() const;
82  void showMarkerName(bool);
83  int markerScreenSize() const;
84  void setMarkerScreenSize(int);
85 
86  //logs
87  void fillLogParams(visBase::Well::LogParams&,
88  visBase::Well::Side side);
89 
90  const OD::LineStyle* lineStyle() const;
91  void setLineStyle(const OD::LineStyle&);
92  bool hasColor() const { return true; }
93  Color getColor() const;
94  void setLogData(visBase::Well::LogParams&,bool);
95  void setLogDisplay(visBase::Well::Side);
96  void calcClippedRange(float,Interval<float>&,int);
97  void displayRightLog();
98  void displayLeftLog();
99  void setOneLogDisplayed(bool);
100  const Color& logColor(visBase::Well::Side) const;
101  void setLogColor(const Color&,visBase::Well::Side);
102  float getLogWidth(visBase::Well::Side) const;
103  void setLogWidth(float,visBase::Well::Side);
104  int getLogLineWidth() const;
105  void setLogLineWidth(int,visBase::Well::Side);
106  bool logsShown() const;
107  void showLogs(bool);
108  bool logNameShown() const;
109  void showLogName(bool);
110 
111  const mVisTrans* getDisplayTransformation() const;
112  void setDisplayTransformation(const mVisTrans*);
113  void setDisplayTransformForPicks(const mVisTrans*);
114 
115  void setSceneEventCatcher(visBase::EventCatcher*);
116  void addPick(const Coord3&);
117  //only used for user-made wells
118  void addKnownPos();
120  IOPar& iop ) const
121  { return SurveyObject::getMousePosInfo(ei,iop);}
122  void getMousePosInfo(const visBase::EventInfo& pos,
123  Coord3&,BufferString& val,
124  BufferString& info) const;
125  NotifierAccess* getManipulationNotifier() { return &changed_; }
126  bool hasChanged() const { return needsave_; }
127  bool isHomeMadeWell() const { return picksallowed_; }
128  void setChanged( bool yn ) { needsave_ = yn; }
129  void setupPicking(bool);
130  void showKnownPositions();
131  void restoreDispProp();
132  uiRetVal getWD() const;
133  bool needsConversionToTime() const;
134 
135  bool allowsPicks() const { return true; }
136 
137  bool setZAxisTransform(ZAxisTransform*,TaskRunner*);
138  const ZAxisTransform* getZAxisTransform() const;
139 
140  virtual void fillPar(IOPar&) const;
141  virtual bool usePar(const IOPar&);
142  virtual void setPixelDensity(float);
143  const visBase::Well* getWell() const { return well_; }
144 
145 protected:
146  ~WellDisplay();
147 
148  void setWell(visBase::Well*);
149  void updateMarkers();
150  void fullRedraw();
151  void getTrackPos(TypeSet<Coord3>&);
152  void setLogProperties(visBase::Well::LogParams&);
153  void pickCB(CallBacker* cb=0);
154  void welldataDelNotify(CallBacker* cb=0);
155  void saveDispProp( const Well::Data* wd );
156  void setLogInfo(BufferString&,BufferString&,
157  float,bool) const;
158  bool upscaleLogs(const Well::Track&,Well::Log&,
159  Well::Log*) const;
160  void removePick(const visBase::EventInfo&);
161  void addPick(const visBase::EventInfo&,int);
162 
163  void infoChgCB(CallBacker*);
164  void trackChgCB(CallBacker*);
165  void d2tChgCB(CallBacker*);
166  void logsChgCB(CallBacker*);
167  void logChgCB(CallBacker*);
168  void markersChgCB(CallBacker*);
169  void trackDispPropsChgCB(CallBacker*);
170  void markerDispPropsChgCB(CallBacker*);
171  void logDispPropsChgCB(CallBacker*);
172 
174 
184 
186  void dataTransformCB(CallBacker*);
187 
189 
192  bool needsave_;
195  const bool zistime_;
196  const bool zinfeet_;
197  static const char* sKeyEarthModelID;
198  static const char* sKeyWellID;
199 };
200 
201 } // namespace visSurvey
Display properties of a well.
Definition: welldisp.h:223
#define mExpClass(module)
Definition: commondefs.h:157
int logsnumber_
Definition: viswelldisplay.h:190
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
bool hasChanged() const
Definition: viswelldisplay.h:126
Coord3 mousepressposition_
Definition: viswelldisplay.h:175
Well::DisplayProperties * dispprop_
Definition: viswelldisplay.h:173
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Interface class for Notifier. See comments there.
Definition: notify.h:20
Well::Track * pseudotrack_
Definition: viswelldisplay.h:181
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
Well log.
Definition: welllog.h:40
Definition: draw.h:119
Base class for well display.
Definition: viswell.h:46
bool picksallowed_
Definition: viswelldisplay.h:194
visBase::EventCatcher * eventcatcher_
Definition: viswelldisplay.h:178
visBase::Well * well_
Definition: viswelldisplay.h:180
Used for displaying welltracks, markers and logs.
Definition: viswelldisplay.h:53
Definition: file.h:109
bool isHomeMadeWell() const
Definition: viswelldisplay.h:127
const bool zinfeet_
Definition: viswelldisplay.h:196
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:287
ZAxisTransform * datatransform_
Definition: viswelldisplay.h:185
bool allowsPicks() const
Definition: viswelldisplay.h:135
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:18
Well::Track * timetrack_
Definition: viswelldisplay.h:182
FixedString LineStyle()
Definition: keystrs.h:80
Class to help setup a callback handling.
Definition: notify.h:121
static const char * sKeyWellID
Definition: viswelldisplay.h:198
3D point or vector
Definition: commontypes.h:57
Set of (small) copyable elements.
Definition: commontypes.h:26
VisualObjectImpl
Definition: visobject.h:123
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
int mousepressid_
Definition: viswelldisplay.h:191
Class that can execute a task.
Definition: task.h:193
#define mVisTrans
Definition: visdata.h:25
DBKey getDBKey() const
Definition: viswelldisplay.h:64
Definition: wellcommon.h:16
Side
Definition: viswell.h:55
void setChanged(bool yn)
Definition: viswelldisplay.h:128
const bool zistime_
Definition: viswelldisplay.h:195
Well track.
Definition: welltrack.h:22
bool hasColor() const
Definition: viswelldisplay.h:92
RefMan< Well::Data > wd_
Definition: viswelldisplay.h:183
uiString toUiString(const DBKey &ky)
Definition: dbkey.h:117
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
visBase::MarkerSet * markerset_
Definition: viswelldisplay.h:179
Definition: repos.h:23
void getMousePosInfo(const visBase::EventInfo &ei, IOPar &iop) const
Definition: viswelldisplay.h:119
Definition: visannot.h:40
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
bool onelogdisplayed_
Definition: viswelldisplay.h:193
Definition: uistring.h:299
Base class for all &#39;Display&#39; objects.
Definition: vissurvobj.h:54
OpendTect.
Definition: commontypes.h:25
Definition: visevent.h:40
DBKey wellid_
Definition: viswelldisplay.h:177
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
The holder of all data concerning a certain well.
Definition: welldata.h:36
Base class for z-axis transforms.
Definition: zaxistransform.h:35
MarkerSet is a set of basic pickmarker with a constant size on screen. Size and shape are settable...
Definition: vismarkerset.h:33
bool needsave_
Definition: viswelldisplay.h:192
Notifier< WellDisplay > changed_
Definition: viswelldisplay.h:188
const mVisTrans * transformation_
Definition: viswelldisplay.h:176
Definition: visevent.h:83
NotifierAccess * getManipulationNotifier()
Definition: viswelldisplay.h:125
static const char * sKeyEarthModelID
Definition: viswelldisplay.h:197
const visBase::Well * getWell() const
Definition: viswelldisplay.h:143

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