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

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