OpendTect  6.6
posinfodetector.h
Go to the documentation of this file.
1 #pragma once
2 /*
3 ________________________________________________________________________
4 
5  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
6  Author: Bert Bril
7  Date: Oct 2008
8  RCS: $Id$
9 ________________________________________________________________________
10 
11 */
12 
13 #include "generalmod.h"
14 #include "posinfo.h"
15 #include "coord.h"
16 #include "bufstring.h"
17 #include "uistring.h"
18 class TrcKeySampling;
19 class BinIDSorting;
21 
22 
23 namespace PosInfo
24 {
25 
30 public:
32  : coord_(0,0), binid_(1,0), offset_(0) {}
33  CrdBidOffs( const Coord& c, int nr, float o=0 )
34  : coord_(c), binid_(1,nr), offset_(o) {}
35  CrdBidOffs( const Coord& c, const BinID& b, float o=0 )
36  : coord_(c), binid_(b), offset_(o) {}
37  bool operator ==( const CrdBidOffs& cbo ) const
38  { return binid_ == cbo.binid_
39  && mIsEqual(offset_,cbo.offset_,mDefEps); }
40 
43  float offset_;
44  float azimuth_;
45 };
46 
47 
54 public:
55 
56  struct Setup
57  {
58  Setup( bool istwod )
59  : is2d_(istwod), isps_(false)
60  , reqsorting_(false) {}
61  mDefSetupMemb(bool,is2d)
62  mDefSetupMemb(bool,isps)
63  mDefSetupMemb(bool,reqsorting)
64  };
65 
66  Detector(const Setup&);
67  Detector(const Detector&);
68  Detector& operator =(const Detector&);
70 
71  bool is2D() const { return setup_.is2d_; }
72  bool isPS() const { return setup_.isps_; }
73  void reInit();
74 
75  bool add(const Coord&,const BinID&);
76  bool add(const Coord&,const BinID&,float offs);
77  bool add(const Coord&,int nr);
78  bool add(const Coord&,int nr,float offs);
79  bool add(const Coord&,const BinID&,int nr,float offs);
80  bool add(const Coord&,const BinID&,int nr,
81  float offs,float azi);
82  bool add(const CrdBidOffs&);
83 
84 
85  bool finish();
86  bool usable() const { return errmsg_.isEmpty(); }
87  uiString errMsg() const { return errmsg_; }
88  void appendResults(const Detector&); // after finish only
89  void mergeResults(const Detector&); // after finish only
90 
91  int nrPositions( bool uniq=true ) const
92  { return uniq ? nruniquepos_ : nrpos_; }
93 
94  // available after finish()
95  Coord minCoord() const { return mincoord_; }
96  Coord maxCoord() const { return maxcoord_; }
97  BinID start() const { return start_; }
98  BinID stop() const { return stop_; }
99  BinID step() const { return step_; }
101  Interval<float> offsRg() const { return offsrg_; }
102  Interval<float> azimuthRg() const { return azimuthrg_; }
103  float avgDist() const { return avgdist_; }
104  CrdBidOffs firstPosition() const { return userCBO(firstcbo_); }
105  CrdBidOffs lastPosition() const { return userCBO(lastcbo_); }
106  bool haveGaps( bool inldir=false ) const
107  { return inldir ? inlirreg_ : crlirreg_; }
108 
109  void report(IOPar&) const;
110 
111  const BinIDSorting& sorting() const { return sorting_; }
112  bool inlSorted() const;
113  bool crlSorted() const;
114  void getCubeData(CubeData&) const;
117 
118  StepInterval<int> getRange(bool inldir=false) const;
119  bool haveStep(bool) const; // to check during detection
120 
121 protected:
122 
127  int nrpos_;
133  bool allstd_;
137  bool inlirreg_, crlirreg_;
139  float avgdist_;
146 
149  int curline_;
150  int curseg_;
158 
162  void addLine();
163  void addPos();
166  int getStep(bool inl) const;
167  int getRawStep(bool,bool) const;
169 
172 
173 public:
174  mDeprecated ("Use uiString")
175  const char* getSurvInfo(TrcKeySampling&,Coord crd[3]) const;
176 
177 };
178 
179 
180 } // namespace PosInfo
181 
PosInfo::Detector::usable
bool usable() const
Definition: posinfodetector.h:86
PosInfo::Detector::firstaltnroffs_
CrdBidOffs firstaltnroffs_
Definition: posinfodetector.h:145
PosInfo::CubeData
Position info for an entire 3D cube. The LineData's are not sorted.
Definition: posinfo.h:95
PosInfo::Detector::setup_
Setup setup_
Definition: posinfodetector.h:123
TrcKeySampling
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:35
PosInfo::CrdBidOffs::offset_
float offset_
Definition: posinfodetector.h:43
PosInfo::Detector::nrpos_
int nrpos_
Definition: posinfodetector.h:127
PosInfo::Detector::prevcbo_
CrdBidOffs prevcbo_
Definition: posinfodetector.h:152
PosInfo::Detector::curline_
int curline_
Definition: posinfodetector.h:149
uistring.h
PosInfo::Detector::step
BinID step() const
Definition: posinfodetector.h:99
PosInfo::Detector::mODTextTranslationClass
mODTextTranslationClass(Detector)
ObjectSet< LineData >
PosInfo::Detector::start_
BinID start_
Definition: posinfodetector.h:134
PosInfo::Detector::sortanal_
BinIDSortingAnalyser * sortanal_
Definition: posinfodetector.h:147
mIsEqual
#define mIsEqual(x, y, eps)
Definition: commondefs.h:67
PosInfo::Detector::getSurvInfoWithMsg
uiString getSurvInfoWithMsg(TrcKeySampling &, Coord crd[3]) const
BinIDSorting
BinID sorting parameters.
Definition: binidsorting.h:27
PosInfo::Detector::crlSorted
bool crlSorted() const
PosInfo::Detector::isPS
bool isPS() const
Definition: posinfodetector.h:72
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
PosInfo::Detector::firstPosition
CrdBidOffs firstPosition() const
Definition: posinfodetector.h:104
PosInfo::Detector::add
bool add(const CrdBidOffs &)
PosInfo::Detector::curcbo_
CrdBidOffs curcbo_
Definition: posinfodetector.h:151
PosInfo::Detector::azimuthRg
Interval< float > azimuthRg() const
Definition: posinfodetector.h:102
PosInfo::Detector::llnstop_
CrdBidOffs llnstop_
in 3D, of longest line
Definition: posinfodetector.h:143
PosInfo::Detector::createPositionString
uiString createPositionString(const CrdBidOffs &) const
PosInfo::Detector::getStep
int getStep(bool inl) const
smallest
mDefEps
#define mDefEps
Definition: commondefs.h:71
PosInfo::Detector::Detector
Detector(const Setup &)
PosInfo::Detector
Determines many geometry parameters from a series of Coords with corresponding BinID or trace numbers...
Definition: posinfodetector.h:53
PosInfo::Detector::appendResults
void appendResults(const Detector &)
PosInfo::CrdBidOffs::CrdBidOffs
CrdBidOffs(const Coord &c, int nr, float o=0)
Definition: posinfodetector.h:33
PosInfo::Detector::mDeprecated
mDeprecated("Use uiString") const char *getSurvInfo(TrcKeySampling &
PosInfo::Detector::addNext
bool addNext(const PosInfo::CrdBidOffs &)
PosInfo::Detector::getRange
StepInterval< int > getRange(bool inldir=false) const
PosInfo::Detector::addPos
void addPos()
PosInfo::Detector::lastPosition
CrdBidOffs lastPosition() const
Definition: posinfodetector.h:105
mDefSetupMemb
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:154
PosInfo::Detector::offsRg
Interval< float > offsRg() const
Definition: posinfodetector.h:101
PosInfo::CrdBidOffs::azimuth_
float azimuth_
Definition: posinfodetector.h:44
PosInfo::Detector::avgDist
float avgDist() const
Definition: posinfodetector.h:103
PosInfo::Detector::sorting
const BinIDSorting & sorting() const
Definition: posinfodetector.h:111
PosInfo::Detector::~Detector
~Detector()
PosInfo::Detector::userCBO
CrdBidOffs userCBO(const CrdBidOffs &) const
PosInfo::Detector::report
void report(IOPar &) const
operator==
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:81
PosInfo::Detector::distrg_
Interval< float > distrg_
2D
Definition: posinfodetector.h:138
bufstring.h
PosInfo::Detector::reInit
void reInit()
PosInfo::Detector::maxcoord_
Coord maxcoord_
Definition: posinfodetector.h:129
PosInfo::Detector::Setup
Definition: posinfodetector.h:57
PosInfo::Detector::prevusrcbo_
CrdBidOffs prevusrcbo_
Definition: posinfodetector.h:154
PosInfo::Detector::nruniquepos_
int nruniquepos_
Definition: posinfodetector.h:126
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
StepInterval< int >
PosInfo::Detector::getTrcKeySampling
void getTrcKeySampling(TrcKeySampling &) const
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
PosInfo::CrdBidOffs::coord_
Coord coord_
Definition: posinfodetector.h:41
PosInfo::CrdBidOffs::CrdBidOffs
CrdBidOffs(const Coord &c, const BinID &b, float o=0)
Definition: posinfodetector.h:35
PosInfo::CrdBidOffs::mODTextTranslationClass
mODTextTranslationClass(CrdBidOffs)
PosInfo::Detector::inlSorted
bool inlSorted() const
PosInfo::Detector::mincoord_
Coord mincoord_
Definition: posinfodetector.h:128
PosInfo::Detector::azimuthrg_
Interval< float > azimuthrg_
Definition: posinfodetector.h:132
PosInfo::Detector::Detector
Detector(const Detector &)
posinfo.h
PosInfo::Detector::errmsg_
uiString errmsg_
Definition: posinfodetector.h:157
PosInfo::Detector::stop_
BinID stop_
Definition: posinfodetector.h:135
PosInfo::Detector::finish
bool finish()
PosInfo::Detector::is2D
bool is2D() const
Definition: posinfodetector.h:71
PosInfo::Detector::add
bool add(const Coord &, int nr, float offs)
PosInfo::Detector::nroffsthispos_
int nroffsthispos_
Definition: posinfodetector.h:156
PosInfo::Detector::setCur
void setCur(const PosInfo::CrdBidOffs &)
PosInfo::Detector::step_
BinID step_
Definition: posinfodetector.h:136
PosInfo::Detector::minCoord
Coord minCoord() const
Definition: posinfodetector.h:95
PosInfo::Detector::getCubeData
void getCubeData(CubeData &) const
if crlSorted(), inl and crl are swapped
OD::String::isEmpty
bool isEmpty() const
Definition: odstring.h:50
PosInfo::Detector::getRawStep
int getRawStep(bool, bool) const
PosInfo::Detector::getBinIDRanges
void getBinIDRanges()
PosInfo::CrdBidOffs
Just hold inl, crl, x, y and offs. For 2D, crl=nr.
Definition: posinfodetector.h:29
PosInfo::Detector::add
bool add(const Coord &, int nr)
PosInfo::Detector::llnstart_
CrdBidOffs llnstart_
in 3D, of longest line
Definition: posinfodetector.h:142
PosInfo::Detector::avgdist_
float avgdist_
2D
Definition: posinfodetector.h:139
PosInfo::Detector::nroffsperpos_
int nroffsperpos_
Definition: posinfodetector.h:131
PosInfo::Detector::applySortAnal
bool applySortAnal()
PosInfo::Detector::addLine
void addLine()
PosInfo::CrdBidOffs::CrdBidOffs
CrdBidOffs()
Definition: posinfodetector.h:31
BinIDSortingAnalyser
Analyses whether input BinIDs are sorted.
Definition: binidsorting.h:68
PosInfo::Detector::mergeResults
void mergeResults(const Detector &)
PosInfo::Detector::lds_
ObjectSet< LineData > lds_
Definition: posinfodetector.h:125
PosInfo::Detector::add
bool add(const Coord &, const BinID &, int nr, float offs, float azi)
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
PosInfo
Position info, often segmented.
Definition: posinfo.h:40
PosInfo::Detector::firstcbo_
CrdBidOffs firstcbo_
Definition: posinfodetector.h:140
PosInfo::Detector::add
bool add(const Coord &, const BinID &)
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
PosInfo::Detector::errMsg
uiString errMsg() const
Definition: posinfodetector.h:87
PosInfo::Detector::maxCoord
Coord maxCoord() const
Definition: posinfodetector.h:96
PosInfo::Detector::Setup::Setup
Setup(bool istwod)
Definition: posinfodetector.h:58
PosInfo::Detector::curlnstart_
CrdBidOffs curlnstart_
Definition: posinfodetector.h:155
PosInfo::Detector::firstduppos_
CrdBidOffs firstduppos_
Definition: posinfodetector.h:144
PosInfo::Detector::start
BinID start() const
Definition: posinfodetector.h:97
PosInfo::Detector::addFirst
void addFirst(const PosInfo::CrdBidOffs &)
PosInfo::Detector::sorting_
BinIDSorting & sorting_
Definition: posinfodetector.h:124
MPE::step_
RowCol step_
Definition: horizontracker.h:140
PosInfo::Detector::curseg_
int curseg_
Definition: posinfodetector.h:150
PosInfo::Detector::workCBO
CrdBidOffs workCBO(const CrdBidOffs &) const
PosInfo::Detector::cbobuf_
TypeSet< CrdBidOffs > cbobuf_
Definition: posinfodetector.h:148
PosInfo::Detector::add
bool add(const Coord &, const BinID &, int nr, float offs)
PosInfo::Detector::lastcbo_
CrdBidOffs lastcbo_
Definition: posinfodetector.h:141
Interval< float >
PosInfo::Detector::curusrcbo_
CrdBidOffs curusrcbo_
Definition: posinfodetector.h:153
PosInfo::Detector::offsrg_
Interval< float > offsrg_
Definition: posinfodetector.h:130
PosInfo::Detector::haveStep
bool haveStep(bool) const
PosInfo::Detector::haveGaps
bool haveGaps(bool inldir=false) const
Definition: posinfodetector.h:106
PosInfo::Detector::inlirreg_
bool inlirreg_
Definition: posinfodetector.h:137
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
PosInfo::Detector::nrPositions
int nrPositions(bool uniq=true) const
Definition: posinfodetector.h:91
PosInfo::Detector::add
bool add(const Coord &, const BinID &, float offs)
PosInfo::Detector::Setup::mDefSetupMemb
mDefSetupMemb(bool, is2d) mDefSetupMemb(bool
PosInfo::CrdBidOffs::binid_
BinID binid_
Definition: posinfodetector.h:42
TypeSet
Sets of (small) copyable elements.
Definition: commontypes.h:29
PosInfo::Detector::stop
BinID stop() const
Definition: posinfodetector.h:98
PosInfo::Detector::allstd_
bool allstd_
Definition: posinfodetector.h:133
coord.h

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