OpendTect  6.3
wellposprovider.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: Nanne Hemstra
8  Date: January 2012
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "wellcommon.h"
15 #include "dbkey.h"
16 #include "posprovider.h"
17 #include "callback.h"
18 #include "trckeysampling.h"
19 
20 
21 namespace Pos
22 {
23 
27  , public CallBacker
28 {
29 public:
32  ~WellProvider3D();
33 
34  WellProvider3D& operator=(const WellProvider3D&);
35  const char* type() const;
36  const char* factoryKeyword() const { return type(); }
37  Provider* clone() const { return new WellProvider3D(*this); }
38 
39  virtual bool initialize(TaskRunner* tskr=0);
40  virtual void reset() { initialize(); }
41 
42  virtual bool toNextPos();
43  virtual bool toNextZ();
44 
45  virtual BinID curBinID() const { return curbid_; }
46  virtual float curZ() const { return curz_; }
47  virtual bool includes(const BinID&,float z) const;
48  virtual bool includes(const Coord&,float z) const;
49  virtual void getSummary(BufferString&) const;
50 
51  virtual void getExtent(BinID&,BinID&) const;
52  virtual void getZRange(Interval<float>&) const;
53  virtual od_int64 estNrPos() const;
54  virtual int estNrZPerPos() const { return zrg_.nrSteps()+1; }
55 
56  const Well::Data* wellData(int idx) const;
57  StepInterval<float>& zRange() { return zrg_; }
58  const StepInterval<float>& zRange() const { return zrg_; }
59  TrcKeySampling& horSampling() { return hs_; }
60  const TrcKeySampling& horSampling() const { return hs_; }
61 
62  virtual void usePar(const IOPar&);
63  virtual void fillPar(IOPar&) const;
64 
65  static const char* sKeyInlExt();
66  static const char* sKeyCrlExt();
67  static const char* sKeyZExt();
68  static const char* sKeySurfaceCoords();
69  static const char* sKeyNrWells();
70 
71 protected:
72 
73  void setHS();
76 
78  int inlext_;
79  int crlext_;
80  float zext_;
84 
86  float curz_;
88  bool toNextWell();
89 
90 public:
91 
92  static void initClass();
93  static Provider3D* create() { return new WellProvider3D; }
94 };
95 
96 } // namespace Pos
#define mExpClass(module)
Definition: commondefs.h:157
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:31
float curz_
Definition: wellposprovider.h:86
virtual void reset()
Definition: wellposprovider.h:40
virtual BinID curBinID() const
Definition: wellposprovider.h:45
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
#define od_int64
Definition: plftypes.h:34
int crlext_
Definition: wellposprovider.h:79
Definition: dbkey.h:98
StepInterval< float > & zRange()
Definition: wellposprovider.h:57
static Provider3D * create()
Definition: wellposprovider.h:93
Finds next BinID in TrcKeySampling; initializes to first position.
Definition: trckeysampling.h:181
Provider * clone() const
Definition: wellposprovider.h:37
Provides a subselection for 3D surveys.
Definition: posprovider.h:58
TrcKeySampling & horSampling()
Definition: wellposprovider.h:59
Set of (small) copyable elements.
Definition: commontypes.h:26
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
const StepInterval< float > & zRange() const
Definition: wellposprovider.h:58
Class that can execute a task.
Definition: task.h:193
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:25
TypeSet< ConstRefMan< Well::Data > > welldata_
Definition: wellposprovider.h:75
int curwellidx_
Definition: wellposprovider.h:87
Volume/Area provider based on Wells.
Definition: wellposprovider.h:26
Definition: wellcommon.h:16
virtual float curZ() const
Definition: wellposprovider.h:46
Position.
Definition: commontypes.h:38
virtual int estNrZPerPos() const
Definition: wellposprovider.h:54
bool onlysurfacecoords_
Definition: wellposprovider.h:77
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
float zext_
Definition: wellposprovider.h:80
TrcKeySamplingIterator hsitr_
Definition: wellposprovider.h:82
const TrcKeySampling & horSampling() const
Definition: wellposprovider.h:60
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
int inlext_
Definition: wellposprovider.h:78
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
DBKeySet wellids_
Definition: wellposprovider.h:74
TrcKeySampling & hs_
Definition: wellposprovider.h:81
const char * factoryKeyword() const
Definition: wellposprovider.h:36
The holder of all data concerning a certain well.
Definition: welldata.h:36
BinID curbid_
Definition: wellposprovider.h:85
2D point or vector class.
Definition: commontypes.h:58
StepInterval< float > zrg_
Definition: wellposprovider.h:83
static void initClass()

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