OpendTect  6.6
rangeposprovider.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 "generalmod.h"
16 #include "posprovider.h"
17 #include "transl.h"
18 #include "sortedlist.h"
19 #include <tuple>
20 
21 namespace PosInfo { class Line2DData; }
22 
23 mDeclEmptyTranslatorBundle(General,PosProviders,dgb,"subsel")
24 
25 namespace Pos
26 {
27 
30 typedef std::tuple<od_int64,int> postuple;
31 
33 {
34 public:
35 
39  RangeProvider3D& operator =(const RangeProvider3D&);
40  const char* type() const;
41  const char* factoryKeyword() const { return type(); }
42  virtual Provider* clone() const { return new RangeProvider3D(*this); }
43 
44  virtual bool initialize(TaskRunner* tr=0);
45  virtual void reset();
46 
47  virtual bool toNextPos();
48  virtual bool toNextZ();
49 
50  virtual BinID curBinID() const { return curbid_; }
51  virtual float curZ() const;
52  virtual bool includes(const BinID&,float z=mUdf(float)) const;
53  virtual void usePar(const IOPar&);
54  virtual void fillPar(IOPar&) const;
55  virtual void getSummary(BufferString&) const;
56 
57  virtual void getExtent(BinID& start,BinID& stop) const;
58  virtual void getZRange(Interval<float>&) const;
59  virtual od_int64 estNrPos() const;
60  virtual int estNrZPerPos() const;
62 
63  const TrcKeyZSampling& sampling() const { return tkzs_; }
64  void setSampling( const TrcKeyZSampling& tkzs );
65  void setHSampling( const TrcKeySampling& tks ) const
66  { tkzs_.hsamp_ = tks; }
67 
68  virtual bool includes( const Coord& c, float z=mUdf(float) ) const
69  { return Pos::Provider3D::includes(c,z); }
70 
71 protected:
72 
75  int curzidx_;
76  int zsampsz_;
78  bool dorandom_;
81 
82 public:
83 
84  static void initClass();
85  static Provider3D* create() { return new RangeProvider3D; }
86 
87 };
88 
89 
97 {
98 public:
102  RangeProvider2D& operator =(const RangeProvider2D&);
103  const char* type() const;
104  const char* factoryKeyword() const { return type(); }
105  virtual Provider* clone() const { return new RangeProvider2D(*this); }
106 
107  virtual void reset();
108 
109  virtual bool toNextPos();
110  virtual bool toNextZ();
111 
112  virtual int curNr() const;
113  virtual float curZ() const;
114  virtual Coord curCoord() const;
115  virtual TrcKey curTrcKey() const;
116  virtual bool includes(int,float z=mUdf(float),int lidx=0) const;
117  virtual bool includes(const Coord&,float z=mUdf(float)) const;
118  virtual void usePar(const IOPar&);
119  virtual void fillPar(IOPar&) const;
120  virtual void getSummary(BufferString&) const;
121 
122  virtual void getExtent( Interval<int>& rg, int lidx=-1 ) const;
123  virtual void getZRange( Interval<float>& rg, int lidx ) const;
124  virtual od_int64 estNrPos() const;
125  virtual int estNrZPerPos() const;
126 
127  void setTrcRange(const StepInterval<int>&,int idx=0);
128  const StepInterval<int>& trcRange(int lidx) const
129  {return trcrgs_[lidx];}
130 
131  void setZRange(const StepInterval<float>&,int idx=0);
132  const StepInterval<float>& zRange(int lidx=0) const
133  {return zrgs_[lidx];}
134 
135 protected:
136 
141  int curzidx_;
142  mutable int curlinezsampsz_;
145 
147 
149  const Survey::Geometry2D* curGeom() const;
152  void getCurRanges() const;
153 
154 public:
155 
156  static void initClass();
157  static Provider2D* create() { return new RangeProvider2D; }
158 
159 };
160 
161 } // namespace
162 
sortedlist.h
Pos::RangeProvider3D::zsampsz_
int zsampsz_
Definition: rangeposprovider.h:76
Pos::RangeProvider2D::curGeomID
Pos::GeomID curGeomID() const
TrcKeySampling
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:35
Pos::RangeProvider2D::getExtent
virtual void getExtent(Interval< int > &rg, int lidx=-1) const
Pos::RangeProvider2D::usePar
virtual void usePar(const IOPar &)
Pos::RangeProvider2D::zrgs_
TypeSet< StepInterval< float > > zrgs_
Definition: rangeposprovider.h:138
Pos::RangeProvider2D::curlinezsampsz_
int curlinezsampsz_
Definition: rangeposprovider.h:142
Pos::RangeProvider3D::posindexlst_
SortedList< postuple > posindexlst_
Definition: rangeposprovider.h:80
Pos::RangeProvider3D::reset
virtual void reset()
Pos
Position.
Definition: commontypes.h:78
Pos::RangeProvider2D::setZRange
void setZRange(const StepInterval< float > &, int idx=0)
Pos::RangeProvider3D::factoryKeyword
const char * factoryKeyword() const
Definition: rangeposprovider.h:41
Pos::RangeProvider3D::dorandom_
bool dorandom_
Definition: rangeposprovider.h:78
Pos::RangeProvider2D::curGeom
const Survey::Geometry2D * curGeom() const
Pos::RangeProvider2D::reset
virtual void reset()
Pos::RangeProvider3D::includes
virtual bool includes(const Coord &c, float z=mUdf(float)) const
Definition: rangeposprovider.h:68
Pos::RangeProvider3D::create
static Provider3D * create()
Definition: rangeposprovider.h:85
Pos::Provider3D
Provides a subselection for 3D surveys.
Definition: posprovider.h:61
Pos::RangeProvider2D::includes
virtual bool includes(int, float z=mUdf(float), int lidx=0) const
Pos::RangeProvider3D::toNextPos
virtual bool toNextPos()
posprovider.h
Pos::RangeProvider2D::estNrPos
virtual od_int64 estNrPos() const
Pos::RangeProvider3D::initClass
static void initClass()
od_int64
#define od_int64
Definition: plftypes.h:35
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
mDeclEmptyTranslatorBundle
mDeclEmptyTranslatorBundle(Strat, StratLayerSequenceGenDesc, od,"sgd") mDeclEmptyTranslatorBundle(Strat
Pos::RangeProvider2D::curtrcrg_
StepInterval< int > curtrcrg_
Definition: rangeposprovider.h:143
Pos::RangeProvider3D::estNrPos
virtual od_int64 estNrPos() const
Pos::RangeProvider3D::usePar
virtual void usePar(const IOPar &)
Pos::RangeProvider3D::enoughsamples_
bool enoughsamples_
Definition: rangeposprovider.h:79
Pos::RangeProvider2D::estNrZPerPos
virtual int estNrZPerPos() const
Pos::RangeProvider2D::curzidx_
int curzidx_
Definition: rangeposprovider.h:141
Pos::RangeProvider3D::setSampling
void setSampling(const TrcKeyZSampling &tkzs)
Pos::RangeProvider2D::initClass
static void initClass()
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
Pos::RangeProvider2D::curTrcKey
virtual TrcKey curTrcKey() const
Pos::RangeProvider3D::nrsamples_
int nrsamples_
Definition: rangeposprovider.h:77
Pos::RangeProvider3D::getZRange
virtual void getZRange(Interval< float > &) const
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
StepInterval< int >
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
Pos::RangeProvider3D::setHSampling
void setHSampling(const TrcKeySampling &tks) const
Definition: rangeposprovider.h:65
Pos::RangeProvider2D::trcRange
const StepInterval< int > & trcRange(int lidx) const
Definition: rangeposprovider.h:128
Pos::RangeProvider2D
2D provider based on StepInterval<int>.
Definition: rangeposprovider.h:97
Pos::RangeProvider2D::toNextPos
virtual bool toNextPos()
Pos::RangeProvider2D::~RangeProvider2D
~RangeProvider2D()
Pos::RangeProvider2D::RangeProvider2D
RangeProvider2D(const RangeProvider2D &)
Pos::RangeProvider3D::sampling
const TrcKeyZSampling & sampling() const
Definition: rangeposprovider.h:63
Pos::RangeProvider2D::curTrcRange
StepInterval< int > curTrcRange() const
Pos::RangeProvider3D::getExtent
virtual void getExtent(BinID &start, BinID &stop) const
Pos::RangeProvider3D::type
const char * type() const
sKey::Range()
Pos::RangeProvider2D::clone
virtual Provider * clone() const
Definition: rangeposprovider.h:105
Pos::RangeProvider2D::setTrcRange
void setTrcRange(const StepInterval< int > &, int idx=0)
Pos::RangeProvider3D::initialize
virtual bool initialize(TaskRunner *tr=0)
TaskRunner
Class that can execute a task.
Definition: task.h:170
SortedList< postuple >
Pos::RangeProvider3D::getTrcKeyZSampling
void getTrcKeyZSampling(TrcKeyZSampling &) const
Pos::RangeProvider3D::~RangeProvider3D
~RangeProvider3D()
Pos::RangeProvider2D::curtrcidx_
int curtrcidx_
Definition: rangeposprovider.h:139
Pos::postuple
std::tuple< od_int64, int > postuple
3D provider based on TrcKeyZSampling
Definition: rangeposprovider.h:30
Pos::RangeProvider3D::curbid_
BinID curbid_
Definition: rangeposprovider.h:74
Pos::RangeProvider2D::create
static Provider2D * create()
Definition: rangeposprovider.h:157
Pos::Provider2D
Provides a subselection for 2D surveys - requires the line name(s).
Definition: posprovider.h:96
Pos::RangeProvider3D::getSummary
virtual void getSummary(BufferString &) const
Pos::RangeProvider2D::curlineidx_
int curlineidx_
Definition: rangeposprovider.h:140
Pos::RangeProvider3D::includes
virtual bool includes(const BinID &, float z=mUdf(float)) const
Pos::RangeProvider2D::curgeom_
const Survey::Geometry2D * curgeom_
Definition: rangeposprovider.h:146
Pos::RangeProvider2D::fillPar
virtual void fillPar(IOPar &) const
Pos::RangeProvider2D::zRange
const StepInterval< float > & zRange(int lidx=0) const
Definition: rangeposprovider.h:132
Pos::Provider3D::includes
virtual bool includes(const BinID &, float z=mUdf(float)) const =0
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
Pos::RangeProvider2D::type
const char * type() const
sKey::Range()
Pos::RangeProvider2D::toNextZ
virtual bool toNextZ()
Pos::RangeProvider3D::curZ
virtual float curZ() const
Pos::RangeProvider2D::curNr
virtual int curNr() const
PosInfo
Position info, often segmented.
Definition: posinfo.h:40
Pos::RangeProvider3D::RangeProvider3D
RangeProvider3D()
Pos::RangeProvider2D::factoryKeyword
const char * factoryKeyword() const
Definition: rangeposprovider.h:104
Pos::RangeProvider3D::fillPar
virtual void fillPar(IOPar &) const
Pos::RangeProvider2D::curzrg_
StepInterval< float > curzrg_
Definition: rangeposprovider.h:144
Pos::RangeProvider2D::curCoord
virtual Coord curCoord() const
Pos::RangeProvider2D::trcrgs_
TypeSet< StepInterval< int > > trcrgs_
Definition: rangeposprovider.h:137
Pos::RangeProvider3D::estNrZPerPos
virtual int estNrZPerPos() const
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
Survey::Geometry2D
Geometry of a 2D Line.
Definition: survgeom2d.h:27
transl.h
Pos::RangeProvider2D::getSummary
virtual void getSummary(BufferString &) const
Pos::RangeProvider2D::getCurRanges
void getCurRanges() const
Pos::RangeProvider2D::curZ
virtual float curZ() const
Pos::RangeProvider2D::getZRange
virtual void getZRange(Interval< float > &rg, int lidx) const
Pos::RangeProvider3D
Definition: rangeposprovider.h:33
Pos::RangeProvider2D::RangeProvider2D
RangeProvider2D()
Pos::RangeProvider3D::toNextZ
virtual bool toNextZ()
Interval< float >
Pos::RangeProvider3D::curzidx_
int curzidx_
Definition: rangeposprovider.h:75
Pos::RangeProvider2D::includes
virtual bool includes(const Coord &, float z=mUdf(float)) const
Pos::Provider
Provides a series of positions; can also be used for subselection.
Definition: posprovider.h:33
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Pos::RangeProvider3D::RangeProvider3D
RangeProvider3D(const RangeProvider3D &)
Pos::RangeProvider3D::tkzs_
TrcKeyZSampling & tkzs_
Definition: rangeposprovider.h:73
Pos::RangeProvider2D::curZRange
StepInterval< float > curZRange() const
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
TypeSet
Sets of (small) copyable elements.
Definition: commontypes.h:29
Pos::RangeProvider3D::clone
virtual Provider * clone() const
Definition: rangeposprovider.h:42
Pos::RangeProvider3D::curBinID
virtual BinID curBinID() const
Definition: rangeposprovider.h:50

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