OpendTect  6.6
posprovider.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
8  Date: Feb 2008
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "algomod.h"
16 #include "posfilter.h"
17 #include "ranges.h"
18 class TrcKeyZSampling;
19 
20 
21 namespace Pos
22 {
23 
32 mExpClass(Algo) Provider : public virtual Filter
33 {
34 public:
35 
36  virtual bool isProvider() const;
37 
38  virtual bool toNextPos() = 0;
39  virtual bool toNextZ() = 0;
40  virtual Coord curCoord() const = 0;
41  virtual float curZ() const = 0;
42  virtual TrcKey curTrcKey() const = 0;
43  virtual Pos::SurvID survID() const = 0;
44 
45  virtual od_int64 estNrPos() const = 0;
46  virtual int estNrZPerPos() const { return 1; }
47 
48  virtual float estRatio(const Provider&) const;
49  virtual void getTrcKeyZSampling(TrcKeyZSampling&) const;
50 
51  static Provider* make(const IOPar&,bool is2d);
52 };
53 
54 
60  , public Provider
61 {
62 public:
63 
64  virtual bool is2D() const { return false; }
65 
66  virtual BinID curBinID() const = 0;
67  virtual TrcKey curTrcKey() const { return TrcKey(survID(),curBinID());}
68  virtual Coord curCoord() const;
69 
70  virtual bool includes(const BinID&,float z=mUdf(float)) const = 0;
71  virtual bool includes(const Coord&,float z=mUdf(float)) const;
72 
73  virtual void getExtent(BinID& start,BinID& stop) const = 0;
74  virtual void getZRange(Interval<float>&) const = 0;
75  virtual Pos::SurvID survID() const { return survid_; }
76  virtual void setSurvID(Pos::SurvID sid) { survid_ = sid; }
77 
79  static Provider3D* make(const IOPar&);
80 
81 protected:
83 
84 private:
86 
87 };
88 
89 
95  , public Provider
96 {
97 public:
98 
99  virtual bool is2D() const { return true; }
100 
101  virtual int curNr() const = 0;
102  virtual bool includes(int,float z=mUdf(float), int nr=0) const= 0;
103  virtual bool includes(const Coord&,float z=mUdf(float)) const = 0;
104 
105  virtual void getExtent(Interval<int>&,int lidx) const = 0;
106  virtual void getZRange(Interval<float>&,int lidx) const = 0;
107 
108  virtual Pos::SurvID survID() const;
109 
111  static Provider2D* make(const IOPar&);
112 
113 };
114 
115 
116 } // namespace
117 
Pos::Provider3D::curTrcKey
virtual TrcKey curTrcKey() const
Definition: posprovider.h:67
Pos::Provider3D::survID
virtual Pos::SurvID survID() const
Definition: posprovider.h:75
Pos::Provider::curZ
virtual float curZ() const =0
Pos
Position.
Definition: commontypes.h:78
Pos::Provider3D::setSurvID
virtual void setSurvID(Pos::SurvID sid)
Definition: posprovider.h:76
Pos::Provider3D
Provides a subselection for 3D surveys.
Definition: posprovider.h:61
Pos::Provider::survID
virtual Pos::SurvID survID() const =0
Pos::Filter3D
Provides a filter related to 3D data.
Definition: posfilter.h:79
od_int64
#define od_int64
Definition: plftypes.h:35
Pos::Provider::toNextPos
virtual bool toNextPos()=0
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Pos::Provider::isProvider
virtual bool isProvider() const
Pos::Provider2D::mDefineFactoryInClass
mDefineFactoryInClass(Provider2D, factory)
Pos::Provider::getTrcKeyZSampling
virtual void getTrcKeyZSampling(TrcKeyZSampling &) const
Pos::SurvID
Index_Type SurvID
Definition: commontypes.h:84
Pos::Provider2D::is2D
virtual bool is2D() const
Definition: posprovider.h:99
posfilter.h
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
Pos::Provider::curTrcKey
virtual TrcKey curTrcKey() const =0
Pos::Provider3D::getZRange
virtual void getZRange(Interval< float > &) const =0
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
Pos::Provider3D::survid_
Pos::SurvID survid_
Definition: posprovider.h:85
Pos::Provider2D::make
static Provider2D * make(const IOPar &)
Pos::Provider2D::includes
virtual bool includes(const Coord &, float z=mUdf(float)) const =0
Pos::Provider3D::includes
virtual bool includes(const Coord &, float z=mUdf(float)) const
Pos::Provider::estNrPos
virtual od_int64 estNrPos() const =0
Pos::Provider3D::mDefineFactoryInClass
mDefineFactoryInClass(Provider3D, factory)
Pos::Provider2D::includes
virtual bool includes(int, float z=mUdf(float), int nr=0) const =0
Pos::Provider2D::survID
virtual Pos::SurvID survID() const
Pos::Provider3D::Provider3D
Provider3D()
Pos::Provider::toNextZ
virtual bool toNextZ()=0
Pos::Provider2D
Provides a subselection for 2D surveys - requires the line name(s).
Definition: posprovider.h:96
Pos::Provider2D::getZRange
virtual void getZRange(Interval< float > &, int lidx) const =0
Pos::Provider3D::curBinID
virtual BinID curBinID() const =0
Pos::Filter2D
Provides a filter related to 2D seismic data.
Definition: posfilter.h:98
Pos::Provider3D::includes
virtual bool includes(const BinID &, float z=mUdf(float)) const =0
Pos::Provider3D::curCoord
virtual Coord curCoord() const
Pos::Provider::estNrZPerPos
virtual int estNrZPerPos() const
Definition: posprovider.h:46
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
Pos::Provider::make
static Provider * make(const IOPar &, bool is2d)
Pos::Filter
Decides whether a given position should be included.
Definition: posfilter.h:45
Pos::Provider::estRatio
virtual float estRatio(const Provider &) const
Pos::Provider3D::is2D
virtual bool is2D() const
Definition: posprovider.h:64
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
Pos::Provider3D::getExtent
virtual void getExtent(BinID &start, BinID &stop) const =0
ranges.h
Interval< float >
Pos::Provider2D::curNr
virtual int curNr() const =0
Pos::Provider3D::make
static Provider3D * make(const IOPar &)
Pos::Provider
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:33
Pos::Provider::curCoord
virtual Coord curCoord() const =0
Pos::Provider2D::getExtent
virtual void getExtent(Interval< int > &, int lidx) const =0
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55

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