OpendTect-6_4  6.4
welltrack.h
Go to the documentation of this file.
1 #ifndef welltrack_h
2 #define welltrack_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Bert Bril
9  Date: Aug 2003
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 
14 -*/
15 
16 #include "wellmod.h"
17 #include "welldahobj.h"
18 #include "position.h"
19 
20 namespace Well
21 {
22 
23 class Data;
24 
30 {
31 public:
32 
33  Track( const char* nm=0 )
34  : DahObj(nm), zistime_(false) {}
35  Track( const Track& t )
36  : DahObj("") { *this = t; }
37  Track& operator =(const Track&);
38 
39  bool isEmpty() const;
40  const Coord3& pos( int idx ) const { return pos_[idx]; }
41  float value( int idx ) const { return (float) pos_[idx].z; }
42  float getKbElev() const;
43  float td() const
44  { return isEmpty() ? 0 : dah_.last(); }
45  int size() const { return pos_.size(); }
46  bool zIsTime() const { return zistime_; }
47  const Interval<double> zRangeD() const;
48  const Interval<float> zRange() const;
50 
51  int insertPoint(const Coord3&);
52  int insertPoint(const Coord&,float z);
56  void addPoint(const Coord3&,float dah=mUdf(float));
57  void addPoint(const Coord&,float z,float dah=mUdf(float));
59  void setPoint(int,const Coord3&);
60  void setPoint(int,const Coord&,float z);
62  void insertAfterIdx(int,const Coord3&);
64  void removePoint(int);
66 
67  Coord3 getPos(float d_ah) const;
68  const TypeSet<Coord3>& getAllPos() const { return pos_; }
69 
70  float getDahForTVD(double,float prevdah=mUdf(float)) const;
71  float getDahForTVD(float,float prevdah=mUdf(float)) const;
74  float nearestDah(const Coord3&) const;
75  // If zIsTime() z must be time
76 
77  // If you know what you're doing:
78  Coord3 coordAfterIdx(float d_ah,int) const;
80 
81  bool insertAtDah(float dah,float zpos);
83 
84  bool alwaysDownward() const;
85  void toTime(const Data&);
86 
87 protected:
88 
89 
91  bool zistime_;
92 
93  void removeAux( int idx ) { pos_.removeSingle(idx); }
94  void eraseAux() { pos_.erase(); }
95 
96 };
97 
98 
99 }; // namespace Well
100 
101 #endif
#define mExpClass(module)
Definition: commondefs.h:160
const Coord3 & pos(int idx) const
Definition: welltrack.h:40
Track(const Track &t)
Definition: welltrack.h:35
const TypeSet< Coord3 > & getAllPos() const
Definition: welltrack.h:68
float value(int idx) const
Definition: welltrack.h:41
bool zIsTime() const
Definition: welltrack.h:46
A cartesian coordinate in 2D space.
Definition: coord.h:25
void eraseAux()
Definition: welltrack.h:94
TypeSet< Coord3 > pos_
Definition: welltrack.h:90
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:272
Definition: directionalsurvey.h:19
Well track.
Definition: welltrack.h:29
Track(const char *nm=0)
Definition: welltrack.h:33
Depth/Distance along hole object.
Definition: welldahobj.h:28
A cartesian coordinate in 3D space.
Definition: coord.h:72
Definition: repos.h:25
void removeAux(int idx)
Definition: welltrack.h:93
virtual void erase()
Definition: typeset.h:339
virtual void removeSingle(size_type, bool preserver_order=true)
Definition: typeset.h:500
The holder of all data concerning a certain well.
Definition: welldata.h:113
bool isEmpty(const NLAModel *mdl)
bool zistime_
Definition: welltrack.h:91
int size() const
Definition: welltrack.h:45
float td() const
Definition: welltrack.h:43

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