OpendTect-6_4  6.4
seisselectionimpl.h
Go to the documentation of this file.
1 #ifndef seisselectionimpl_h
2 #define seisselectionimpl_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Bert
9  Date: Nov 2007
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "seismod.h"
16 #include "seisselection.h"
17 #include "binid.h"
18 #include "objectset.h"
19 
20 class TrcKeySampling;
21 class TrcKeyZSampling;
22 class BinIDValueSet;
23 template <class T> class ODPolygon;
24 
25 
26 namespace Seis
27 {
28 
32 {
33 public:
34 
35  Type type() const { return Range; }
36 
37  RangeSelData(bool settosurvinfo=false);
40  RangeSelData(const RangeSelData&);
41  ~RangeSelData();
42  RangeSelData& operator =( const RangeSelData& rsd )
43  { copyFrom(rsd); return *this; }
44 
45  TrcKeyZSampling& cubeSampling() { return tkzs_; }
46  const TrcKeyZSampling& cubeSampling() const { return tkzs_; }
47 
48  SelData* clone() const { return new RangeSelData(*this); }
49  virtual void copyFrom(const SelData&);
50 
51  Interval<int> inlRange() const;
52  Interval<int> crlRange() const;
53  Interval<float> zRange() const;
54  bool setInlRange(Interval<int>);
55  bool setCrlRange(Interval<int>);
56  bool setZRange(Interval<float>);
57 
58  void fillPar(IOPar&) const;
59  void usePar(const IOPar&);
60 
61  void extendZ(const Interval<float>&);
62  void include(const SelData&);
63 
64  int selRes(const BinID&) const;
65  int expectedNrTraces(bool for2d,const BinID*) const;
66 
67 protected:
68 
70 
71  void doExtendH(BinID,BinID);
72 };
73 
74 
78 {
79 public:
80 
81  Type type() const { return Table; }
82 
83  TableSelData();
85  const Interval<float>* extraz=0);
86  TableSelData(const TableSelData&);
87  ~TableSelData();
88  TableSelData& operator =( const TableSelData& tsd )
89  { copyFrom(tsd); return *this; }
90 
91  BinIDValueSet& binidValueSet() { return bvs_; }
92  const BinIDValueSet& binidValueSet() const { return bvs_; }
93  Interval<float> extraZ() const { return extraz_; }
94 
95  SelData* clone() const { return new TableSelData(*this); }
96  virtual void copyFrom(const SelData&);
97 
98  Interval<int> inlRange() const;
99  bool setInlRange(Interval<int>) { return false; }
100  Interval<int> crlRange() const;
101  bool setCrlRange(Interval<int>) { return false; }
102  Interval<float> zRange() const;
103  bool setZRange(Interval<float>);
104 
105  void fillPar(IOPar&) const;
106  void usePar(const IOPar&);
107 
108  void extendZ(const Interval<float>&);
109  void include(const SelData&);
110 
111  int selRes(const BinID&) const;
112  int expectedNrTraces(bool for2d,const BinID*) const;
113 
114 protected:
115 
118  Interval<float> fixedzrange_; // used only if no z vals in bidvalset
119 
120  void doExtendH(BinID,BinID);
121 };
122 
123 
132 {
133 public:
134 
135  Type type() const { return Polygon; }
136 
137  PolySelData();
139  const Interval<float>* zrange=0);
141  const Interval<float>* zrange=0);
142  PolySelData(const PolySelData&);
143  ~PolySelData();
144  PolySelData& operator =( const PolySelData& tsd )
145  { copyFrom(tsd); return *this; }
146 
147  SelData* clone() const { return new PolySelData(*this); }
148  virtual void copyFrom(const SelData&);
149 
150  Interval<int> inlRange() const;
151  bool setInlRange(Interval<int>) { return false; }
152  Interval<int> crlRange() const;
153  bool setCrlRange(Interval<int>) { return false; }
154  Interval<float> zRange() const;
156  { zrg_ = zrg; return true; }
157 
158  void fillPar(IOPar&) const;
159  void usePar(const IOPar&);
160 
161  void extendZ(const Interval<float>&);
162  void include(const SelData&);
163 
164  int selRes(const BinID&) const;
165  int expectedNrTraces(bool for2d,const BinID*) const;
166 
167 protected:
168 
169  void initZrg(const Interval<float>*);
170 
172 
173  float midz_;
175 
177 
178  void doExtendH(BinID,BinID);
179 };
180 
181 
182 } // namespace
183 
184 #endif
selection data in simple ranges
Definition: seisselectionimpl.h:31
#define mExpClass(module)
Definition: commondefs.h:160
Summary for a Seismic object.
Definition: segydirectdef.h:23
Definition: seistype.h:26
bool setInlRange(Interval< int >)
Definition: seisselectionimpl.h:99
bool setCrlRange(Interval< int >)
Definition: seisselectionimpl.h:101
BinIDValueSet & binidValueSet()
Definition: seisselectionimpl.h:91
selection data by polygon or polyline.
Definition: seisselectionimpl.h:131
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
(Closed) sequence of connected 2-D coordinates.
Definition: polygon.h:27
bool setInlRange(Interval< int >)
Definition: seisselectionimpl.h:151
Definition: seistype.h:26
const BinIDValueSet & binidValueSet() const
Definition: seisselectionimpl.h:92
Type type() const
Definition: seisselectionimpl.h:135
bool setCrlRange(Interval< int >)
Definition: seisselectionimpl.h:153
const TrcKeyZSampling & cubeSampling() const
Definition: seisselectionimpl.h:46
SelType
Definition: seistype.h:26
Set of pointers to objects.
Definition: commontypes.h:32
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:27
Interval< float > zrg_
Definition: seisselectionimpl.h:174
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
Interval< float > extraZ() const
Definition: seisselectionimpl.h:93
Interval< float > extraz_
Definition: seisselectionimpl.h:117
SelData * clone() const
Definition: seisselectionimpl.h:95
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:82
Interval< float > fixedzrange_
Definition: seisselectionimpl.h:118
TrcKeyZSampling & tkzs_
Definition: seisselectionimpl.h:69
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
BinID stepoutreach_
Definition: seisselectionimpl.h:176
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:23
Type type() const
Definition: seisselectionimpl.h:81
selection data in a table
Definition: seisselectionimpl.h:77
ObjectSet< ODPolygon< float > > polys_
Definition: seisselectionimpl.h:171
SelData * clone() const
Definition: seisselectionimpl.h:147
Definition: seistype.h:26
float midz_
Definition: seisselectionimpl.h:173
TrcKeyZSampling & cubeSampling()
Definition: seisselectionimpl.h:45
BinIDValueSet & bvs_
Definition: seisselectionimpl.h:116
Type type() const
Definition: seisselectionimpl.h:35
SelData * clone() const
Definition: seisselectionimpl.h:48
bool setZRange(Interval< float > zrg)
Definition: seisselectionimpl.h:155

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