OpendTect  6.6
seisinfo.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: A.H. Bril
8  Date: 25-10-1996
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "seismod.h"
15 #include "seisposkey.h"
16 #include "samplingdata.h"
17 #include "position.h"
18 #include "ranges.h"
19 #include "enums.h"
20 class SeisTrc;
21 class PosAuxInfo;
22 
23 
27 {
28 public:
29 
31 
33  : sampling(0,defaultSampleInterval()), nr(0)
34  , refnr(mUdf(float)), pick(mUdf(float))
35  , offset(0), azimuth(0), zref(0), new_packet(false)
36  {}
37 
39  int nr;
40  BinID binid; /* mDeprecated */
42  float offset;
43  float azimuth;
44  float refnr;
45  float pick;
46 
47  // New functions that will be used more and more.
48  // Try to avoid using binid directly!
49  inline const BinID& binID() const { return binid; }
50  inline IdxType inl() const { return binid.inl(); }
51  inline IdxType crl() const { return binid.crl(); }
52  inline IdxType lineNr() const { return inl(); }
53  inline IdxType trcNr() const { return nr>0 ? nr : crl(); }
54  TrcKey trcKey() const
55  {
56  return nr>0 ? TrcKey(lineNr(),nr)
57  : TrcKey(binid);
58  }
59  void setTrcKey(const TrcKey&);
60 
61  inline SeisTrcInfo& setBinID( const BinID& bid )
62  { binid = bid; return *this; }
63  inline SeisTrcInfo& setInl( IdxType inr )
64  { binid.inl() = inr; return *this; }
65  inline SeisTrcInfo& setCrl( IdxType inr )
66  { binid.crl() = inr; return *this; }
67  inline void setLineNr( int inr ) { binid.inl() = inr; }
68  inline void setTrcNr( int inr ) { binid.crl() = nr = inr; }
69 
70  int nearestSample(float pos) const;
71  float samplePos( int idx ) const
72  { return sampling.atIndex( idx ); }
74  bool dataPresent(float pos,int trcsize) const;
75 
76  enum Fld { TrcNr=0, Pick, RefNr,
77  CoordX, CoordY, BinIDInl, BinIDCrl,
80  double getValue(Fld) const;
83  const SeisTrcInfo* next) const;
85  void setPSFlds(const Coord& rcvpos,const Coord& srcpos,
86  bool setpos=false);
87 
88  static const char* sSamplingInfo;
89  static const char* sNrSamples;
90  static float defaultSampleInterval(bool forcetime=false);
91 
93  void setPosKey(const Seis::PosKey&);
94  void putTo(PosAuxInfo&) const;
95  void getFrom(const PosAuxInfo&);
96  void fillPar(IOPar&) const;
97  void usePar(const IOPar&);
98 
99  float zref; // not stored
100  bool new_packet; // not stored
101 
102 };
103 
104 
SeisTrcInfo::Offset
@ Offset
Definition: seisinfo.h:78
SeisTrcInfo::CoordY
@ CoordY
Definition: seisinfo.h:77
SeisTrcInfo::zref
float zref
Definition: seisinfo.h:99
SeisTrcInfo::nearestSample
int nearestSample(float pos) const
Pos::IdxPair::crl
IdxType & crl()
Definition: posidxpair.h:47
SeisTrcInfo::getAxisCandidates
static void getAxisCandidates(Seis::GeomType, TypeSet< Fld > &)
SeisTrcInfo
Information for a seismic trace, AKA trace header info.
Definition: seisinfo.h:27
SeisTrcInfo::trcKey
TrcKey trcKey() const
Definition: seisinfo.h:54
SeisTrcInfo::binID
const BinID & binID() const
Definition: seisinfo.h:49
SeisTrcInfo::sNrSamples
static const char * sNrSamples
Definition: seisinfo.h:89
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
SeisTrcInfo::getDefaultAxisFld
int getDefaultAxisFld(Seis::GeomType, const SeisTrcInfo *next) const
SeisTrcInfo::nr
int nr
Definition: seisinfo.h:39
SeisTrcInfo::setLineNr
void setLineNr(int inr)
Definition: seisinfo.h:67
SeisTrcInfo::fillPar
void fillPar(IOPar &) const
Pick
Definition: picklocation.h:21
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
seisposkey.h
PosAuxInfo::azimuth
float azimuth
Definition: posauxinfo.h:38
SeisTrcInfo::azimuth
float azimuth
Definition: seisinfo.h:43
SeisTrc
Seismic trace.
Definition: seistrc.h:34
SeisTrcInfo::trcNr
IdxType trcNr() const
Definition: seisinfo.h:53
samplingdata.h
SeisTrcInfo::getInterestingFlds
void getInterestingFlds(Seis::GeomType, IOPar &) const
SeisTrcInfo::binid
BinID binid
Definition: seisinfo.h:40
SeisTrcInfo::offset
float offset
Definition: seisinfo.h:42
SeisTrcInfo::crl
IdxType crl() const
Definition: seisinfo.h:51
Seis::Azimuth
@ Azimuth
Definition: seistype.h:54
SeisTrcInfo::Fld
Fld
Definition: seisinfo.h:76
SeisTrcInfo::setTrcNr
void setTrcNr(int inr)
Definition: seisinfo.h:68
PosAuxInfo::pick
float pick
Definition: posauxinfo.h:39
SeisTrcInfo::setInl
SeisTrcInfo & setInl(IdxType inr)
Definition: seisinfo.h:63
SeisTrcInfo::setTrcKey
void setTrcKey(const TrcKey &)
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
Coord
A cartesian coordinate in 2D space.
Definition: coord.h:25
SamplingData::atIndex
T atIndex(IT) const
Definition: samplingdata.h:164
SeisTrcInfo::getFrom
void getFrom(const PosAuxInfo &)
SeisTrcInfo::lineNr
IdxType lineNr() const
Definition: seisinfo.h:52
SeisTrcInfo::sampleGate
SampleGate sampleGate(const Interval< float > &) const
SeisTrcInfo::setCrl
SeisTrcInfo & setCrl(IdxType inr)
Definition: seisinfo.h:65
SeisTrcInfo::defaultSampleInterval
static float defaultSampleInterval(bool forcetime=false)
SeisTrcInfo::setBinID
SeisTrcInfo & setBinID(const BinID &bid)
Definition: seisinfo.h:61
SeisTrcInfo::sampling
SamplingData< float > sampling
Definition: seisinfo.h:38
PosAuxInfo
Auxiliray data possibly needed at location. Mostly a seismic thing.
Definition: posauxinfo.h:22
SamplingData< float >
PosAuxInfo::refnr
float refnr
Definition: posauxinfo.h:40
SeisTrcInfo::posKey
Seis::PosKey posKey(Seis::GeomType) const
Index_Type
od_int32 Index_Type
Definition: commontypes.h:32
SeisTrcInfo::pick
float pick
Definition: seisinfo.h:45
SeisTrcInfo::setPSFlds
void setPSFlds(const Coord &rcvpos, const Coord &srcpos, bool setpos=false)
position.h
SeisTrcInfo::dataPresent
bool dataPresent(float pos, int trcsize) const
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
PosAuxInfo::binid
BinID binid
Definition: posauxinfo.h:34
SeisTrcInfo::coord
Coord coord
Definition: seisinfo.h:41
PosAuxInfo::offset
float offset
Definition: posauxinfo.h:37
enums.h
Pos::IdxPair::inl
IdxType & inl()
Definition: posidxpair.h:42
SeisTrcInfo::setPosKey
void setPosKey(const Seis::PosKey &)
Seis::PosKey
Definition: seisposkey.h:23
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
SeisTrcInfo::inl
IdxType inl() const
Definition: seisinfo.h:50
SeisTrcInfo::mDeclareEnumUtils
mDeclareEnumUtils(Fld) double getValue(Fld) const
SeisTrcInfo::IdxType
Index_Type IdxType
Definition: seisinfo.h:30
ranges.h
SeisTrcInfo::putTo
void putTo(PosAuxInfo &) const
Seis::GeomType
GeomType
Definition: seistype.h:32
Interval< int >
SeisTrcInfo::samplePos
float samplePos(int idx) const
Definition: seisinfo.h:71
SeisTrcInfo::refnr
float refnr
Definition: seisinfo.h:44
SeisTrcInfo::new_packet
bool new_packet
Definition: seisinfo.h:100
SeisTrcInfo::sSamplingInfo
static const char * sSamplingInfo
Definition: seisinfo.h:88
SeisTrcInfo::usePar
void usePar(const IOPar &)
SeisTrcInfo::SeisTrcInfo
SeisTrcInfo()
Definition: seisinfo.h:32
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
TypeSet
Sets of (small) copyable elements.
Definition: commontypes.h:29

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