OpendTect  6.3
welltrack.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: Bert Bril
8  Date: Aug 2003
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "welldahobj.h"
15 #include "position.h"
16 
17 namespace Well
18 {
19 
23 {
24 public:
25 
26  typedef Coord3 PosType;
28 
29  Track(const char* nm=0);
30  ~Track();
33 
34  Coord3 pos(PointID) const;
35  Coord3 posByIdx(IdxType) const;
36  Coord3 firstPos() const;
37  Coord3 lastPos() const;
38  Coord3 getPos(ZType d_ah) const;
39  mImplSimpleMonitoredGet(zIsTime,bool,zistime_)
40  mImplSimpleMonitoredGet(getAllPos,PosSetType,pos_)
41  ZType getKbElev() const;
42  ZType td() const;
43  Interval<double> zRangeD() const;
44  Interval<float> zRange() const;
45  bool alwaysDownward() const;
46 
47  ZType getDahForTVD(double,ZType prevdah=mUdf(float)) const;
48  ZType getDahForTVD(ZType,ZType prevdah=mUdf(float)) const;
51  ZType nearestDah(const Coord3&) const;
52  // If zIsTime() z must be time
53 
54  void toTime(const Data&);
55 
56  // Track building. insertPoint will find 'best' position.
57  PointID insertPoint(Coord3);
58  PointID insertPoint(Coord,float z);
59  PointID addPoint(Coord3,float dah=mUdf(float));
60  PointID addPoint(Coord,float z,float dah=mUdf(float));
62  void setPoint(PointID,const Coord3&);
63  void setPoint(PointID,const Coord&,float z);
64 
65  virtual void getData(ZSetType&,ValueSetType&) const;
66 
67 protected:
68 
69  PosSetType pos_;
70  bool zistime_;
71 
72  virtual bool doSet(IdxType,ValueType);
73  virtual PointID doInsAtDah(ZType,ValueType);
74  virtual ValueType gtVal(IdxType) const;
75  virtual void removeAux( IdxType i ) { pos_.removeSingle(i); }
76  virtual void eraseAux() { pos_.erase(); }
77 
78  void doSetPoint(IdxType,const Coord3&);
79  PointID addPt(ZType,const Coord3&,AccessLocker*);
80  PointID insPt(IdxType,ZType,const Coord3&,AccessLocker*);
81  PointID insAfterIdx(IdxType,const Coord3&,AccessLocker&);
82  Coord3 coordAfterIdx(ZType,IdxType) const;
83  Interval<double> gtZRangeD() const;
84 
85  friend class TrackSampler;
86  friend class TrackIter;
87 
88 };
89 
90 
94 {
95 public:
96  TrackIter(const Track&,bool start_at_end=false);
97  TrackIter(const TrackIter&);
98 
99  const Track& track() const;
100  Coord3 pos() const;
101 
102 };
103 
104 
105 
106 } // namespace Well
#define mExpClass(module)
Definition: commondefs.h:157
Well track iterator.
Definition: welltrack.h:93
virtual void eraseAux()
Definition: welltrack.h:76
Collects positions along selected well tracks. The DataPointSet will get new rows with the positions ...
Definition: wellextractdata.h:186
Definition: welldahobj.h:134
Coord3 PosType
Definition: welltrack.h:26
float ValueType
Definition: welldahobj.h:46
#define mImplSimpleMonitoredGet(fnnm, typ, memb)
Defines simple MT-safe copyable member get.
Definition: monitor.h:21
single integer ID with comparison but no automatic conversion. Note that you will want to make a subc...
Definition: integerid.h:47
#define mDeclMonitorableAssignment(clss)
like mDeclAbstractMonitorableAssignment but for non-abstract subclasses. Implements the clone() metho...
Definition: monitor.h:111
Interval of values.
Definition: commontypes.h:27
#define mDeclInstanceCreatedNotifierAccess(clss)
Definition: notify.h:235
size_type IdxType
Definition: welldahobj.h:44
3D point or vector
Definition: commontypes.h:57
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
Definition: wellcommon.h:16
Well track.
Definition: welltrack.h:22
object with a geometry defined by depth along hole.
Definition: welldahobj.h:36
TypeSet< PosType > PosSetType
Definition: welltrack.h:27
float ZType
Definition: welldahobj.h:40
Definition: monitorable.h:155
virtual void removeSingle(size_type, bool preserver_order=true)
Definition: typeset.h:507
The holder of all data concerning a certain well.
Definition: welldata.h:36
2D point or vector class.
Definition: commontypes.h:58

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