OpendTect-6_4  6.4
viswelldisplay.h
Go to the documentation of this file.
1 #ifndef viswelldisplay_h
2 #define viswelldisplay_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Kristofer Tingdahl
9  Date: 4-11-2002
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 
14 -*/
15 
16 
17 #include "vissurveymod.h"
18 #include "visobject.h"
19 #include "vissurvobj.h"
20 #include "viswell.h"
21 #include "multiid.h"
22 #include "ranges.h"
23 #include "welllogdisp.h"
24 #include "factory.h"
25 
26 namespace visBase
27 {
28  class MarkerSet;
29  class EventCatcher;
30  class EventInfo;
31  class Transformation;
32 }
33 
34 namespace Well
35 {
36  class Data;
37  class DisplayProperties;
38  class Log;
39  class LogDisplayPars;
40  class Track;
41 }
42 
43 namespace visSurvey
44 {
45 class Scene;
46 
53  , public visSurvey::SurveyObject
54 {
55 public:
56  WellDisplay();
59  "WellDisplay",
61 
62  bool setMultiID(const MultiID&);
63  MultiID getMultiID() const { return wellid_; }
64 
65  //track
66  void fillTrackParams(visBase::Well::TrackParams&);
67 
68  bool wellTopNameShown() const;
69  void showWellTopName(bool);
70  bool wellBotNameShown() const;
71  void showWellBotName(bool);
72  TypeSet<Coord3> getWellCoords() const;
73 
74  //markers
75  void fillMarkerParams(visBase::Well::MarkerParams&);
76 
77  bool canShowMarkers() const;
78  bool markersShown() const;
79  void showMarkers(bool);
80  bool markerNameShown() const;
81  void showMarkerName(bool);
82  int markerScreenSize() const;
83  void setMarkerScreenSize(int);
84 
85  //logs
86  void fillLogParams(visBase::Well::LogParams&,
87  visBase::Well::Side side);
88 
89  const OD::LineStyle* lineStyle() const;
90  void setLineStyle(const OD::LineStyle&);
91  bool hasColor() const { return true; }
92  Color getColor() const;
93  void setLogData(visBase::Well::LogParams&,bool);
94  void setLogDisplay(visBase::Well::Side);
95  void calcClippedRange(float,Interval<float>&,int);
96  void displayRightLog();
97  void displayLeftLog();
98  void setOneLogDisplayed(bool);
99  const Color& logColor(visBase::Well::Side) const;
101  float getLogWidth(visBase::Well::Side) const;
102  void setLogWidth(float,visBase::Well::Side);
103  int getLogLineWidth() const;
105  bool logsShown() const;
106  void showLogs(bool);
107  bool logNameShown() const;
108  void showLogName(bool);
109 
110  const mVisTrans* getDisplayTransformation() const;
111  void setDisplayTransformation(const mVisTrans*);
112  void setDisplayTransformForPicks(const mVisTrans*);
113 
115  void addPick(Coord3);
116  //only used for user-made wells
117  void addKnownPos();
119  IOPar& iop ) const
120  { return SurveyObject::getMousePosInfo(ei,iop);}
121  void getMousePosInfo(const visBase::EventInfo& pos,
122  Coord3&,BufferString& val,
123  BufferString& info) const;
124  NotifierAccess* getManipulationNotifier() { return &changed_; }
125  bool hasChanged() const { return needsave_; }
126  bool isHomeMadeWell() const { return picksallowed_; }
127  void setChanged( bool yn ) { needsave_ = yn; }
128  void setupPicking(bool);
129  void showKnownPositions();
130  void restoreDispProp();
131  Well::Data* getWD() const;
132  bool needsConversionToTime() const;
133 
134  bool allowsPicks() const { return true; }
135 
137  const ZAxisTransform* getZAxisTransform() const;
138 
139  virtual void fillPar(IOPar&) const;
140  virtual bool usePar(const IOPar&);
141  virtual void setPixelDensity(float);
142  const char* errMsg() const { return errmsg_.str(); }
143  const visBase::Well* getWell() const { return well_; }
144 
145 protected:
146  ~WellDisplay();
147 
148  void setWell(visBase::Well*);
149  void updateMarkers(CallBacker*);
150  void fullRedraw(CallBacker*);
151  void getTrackPos(const Well::Data*,TypeSet<Coord3>&);
152  void displayLog(Well::LogDisplayPars*,int);
153  void setLogProperties(visBase::Well::LogParams&);
154  void pickCB(CallBacker* cb=0);
155  void welldataDelNotify(CallBacker* cb=0);
156  void saveDispProp( const Well::Data* wd );
157  void setLogInfo(BufferString&,BufferString&,
158  float,bool) const;
159  bool upscaleLogs(const Well::Data& wd,
160  Well::Log& logdata,
161  Well::Log* logfill,
162  visBase::Well::LogParams&) const;
163  void removePick(const visBase::EventInfo&);
164  void addPick(const visBase::EventInfo&,int);
165 
167 
177 
179  void dataTransformCB(CallBacker*);
180 
182 
185  bool needsave_;
188  const bool zistime_;
189  const bool zinfeet_;
190  static const char* sKeyEarthModelID;
191  static const char* sKeyWellID;
192 };
193 
194 } // namespace visSurvey
195 
196 
197 #endif
int getLogLineWidth() const
Display properties of a well.
Definition: welldisp.h:35
friend class Scene
Definition: visdata.h:171
#define mExpClass(module)
Definition: commondefs.h:160
void setLineStyle(const OD::LineStyle &)
int logsnumber_
Definition: viswelldisplay.h:183
To be able to send and/or receive CallBacks, inherit from this class.
Definition: callback.h:272
bool canShowMarkers() const
const char * str() const
Definition: odstring.h:48
bool hasChanged() const
Definition: viswelldisplay.h:125
Coord3 mousepressposition_
Definition: viswelldisplay.h:168
bool wellBotNameShown() const
Well::DisplayProperties * dispprop_
Definition: viswelldisplay.h:166
Export_Basic uiString toUiString(ViewStyle)
bool usePar(const IOPar &par)
Interface class for Notifier. See comments there.
Definition: callback.h:161
Well::Track * pseudotrack_
Definition: viswelldisplay.h:174
Well log.
Definition: welllog.h:44
Definition: draw.h:118
Base class for well display.
Definition: viswell.h:45
bool picksallowed_
Definition: viswelldisplay.h:187
visBase::EventCatcher * eventcatcher_
Definition: viswelldisplay.h:171
visBase::Well * well_
Definition: viswelldisplay.h:173
void showMarkerName(bool)
const char * errMsg() const
Definition: viswelldisplay.h:142
Used for displaying welltracks, markers and logs.
Definition: viswelldisplay.h:52
Definition: file.h:99
bool isHomeMadeWell() const
Definition: viswelldisplay.h:126
const bool zinfeet_
Definition: viswelldisplay.h:189
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:289
void setLogColor(const Color &, Side)
ZAxisTransform * datatransform_
Definition: viswelldisplay.h:178
bool allowsPicks() const
Definition: viswelldisplay.h:134
void setMarkerScreenSize(int)
Used for displaying a polyline, preview for a random line created throught well path.
Definition: visarrowdisplay.h:20
static const char * sFactoryKeyword()
void setLogLineWidth(int, Side)
Well::Track * timetrack_
Definition: viswelldisplay.h:175
MultiID getMultiID() const
Definition: viswelldisplay.h:63
Definition: callback.h:254
static const char * sKeyWellID
Definition: viswelldisplay.h:191
MultiID wellid_
Definition: viswelldisplay.h:170
float getLogWidth(Side) const
Well::Data * wd_
Definition: viswelldisplay.h:176
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
int mousepressid_
Definition: viswelldisplay.h:184
Class that can execute a task.
Definition: task.h:169
VisualObjectImpl(bool selectable)
void setZAxisTransform(ZAxisTransform *, TaskRunner *)
bool logNameShown() const
#define mVisTrans
Definition: visdata.h:31
Definition: directionalsurvey.h:19
Side
Definition: viswell.h:54
void setChanged(bool yn)
Definition: viswelldisplay.h:127
const bool zistime_
Definition: viswelldisplay.h:188
bool markerNameShown() const
Well track.
Definition: welltrack.h:29
bool hasColor() const
Definition: viswelldisplay.h:91
bool logsShown() const
void fillPar(IOPar &) const
int markerScreenSize() const
visBase::MarkerSet * markerset_
Definition: viswelldisplay.h:172
A cartesian coordinate in 3D space.
Definition: coord.h:72
Definition: repos.h:25
void showMarkers(bool)
void getMousePosInfo(const visBase::EventInfo &ei, IOPar &iop) const
Definition: viswelldisplay.h:118
Definition: visannot.h:43
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
void showLogName(bool)
bool onelogdisplayed_
Definition: viswelldisplay.h:186
void showWellTopName(bool)
const Color & logColor(Side) const
BufferString errmsg_
Definition: horizontracker.h:119
const visBase::Transformation * getDisplayTransformation() const
Base class for all &#39;Display&#39; objects.
Definition: vissurvobj.h:58
Definition: visevent.h:44
virtual void setSceneEventCatcher(EventCatcher *)
Definition: visobject.h:44
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:26
void setPixelDensity(float)
The holder of all data concerning a certain well.
Definition: welldata.h:113
bool wellTopNameShown() const
struct(visBase) LogParams const OD::LineStyle & lineStyle() const
Base class for z-axis transforms.
Definition: zaxistransform.h:37
Log display parameters.
Definition: welllogdisp.h:28
void setLogWidth(float, Side)
void showWellBotName(bool)
MarkerSet is a set of basic pickmarker with a constant size on screen. Size and shape are settable...
Definition: vismarkerset.h:36
bool needsave_
Definition: viswelldisplay.h:185
bool markersShown() const
void setDisplayTransformation(const visBase::Transformation *)
Notifier< WellDisplay > changed_
Definition: viswelldisplay.h:181
const mVisTrans * transformation_
Definition: viswelldisplay.h:169
Definition: visevent.h:87
NotifierAccess * getManipulationNotifier()
Definition: viswelldisplay.h:124
Compound key consisting of ints.
Definition: multiid.h:25
void showLogs(bool)
static const char * sKeyEarthModelID
Definition: viswelldisplay.h:190
const visBase::Well * getWell() const
Definition: viswelldisplay.h:143
void setLogData(const TypeSet< Coord3Value > &crdvals, const TypeSet< Coord3Value > &crdvalsF, const LogParams &lp, bool isFilled)

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