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

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