OpendTect  6.6
seisbuf.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: 29-1-98
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 */
13 
14 
15 #include "seismod.h"
16 #include "seisinfo.h"
17 #include "executor.h"
18 #include "uistring.h"
19 class SeisTrc;
20 class SeisTrcReader;
21 class SeisPacketInfo;
22 
23 
32 public:
33 
34  SeisTrcBuf( bool ownr )
35  : owner_(ownr) {}
36  SeisTrcBuf( const SeisTrcBuf& b )
37  : owner_(b.owner_) { b.copyInto( *this ); }
38  virtual ~SeisTrcBuf() { if ( owner_ ) deepErase(); }
39  inline void setIsOwner( bool yn ) { owner_ = yn; }
40  inline bool isOwner() const { return owner_; }
41 
42  void copyInto(SeisTrcBuf&) const;
44  virtual SeisTrcBuf* clone() const { return new SeisTrcBuf(*this);}
45 
46  void deepErase();
47  inline void erase()
48  { if ( owner_ ) deepErase(); else trcs_.erase(); }
49 
50  inline int size() const { return trcs_.size(); }
51  inline bool isEmpty() const { return trcs_.isEmpty(); }
52  inline bool validIdx( od_int64 idx ) const
53  { return trcs_.validIdx(idx); }
54  void insert(SeisTrc*,int atidx=0);
55  inline SeisTrc* replace( int idx, SeisTrc* t )
56  { return trcs_.replace(idx,t); }
57  inline void add( SeisTrc* t ) { trcs_ += t; }
58  void add(SeisTrcBuf&);
59 
60  int find(const BinID&,bool is2d=false) const;
61  int find(const SeisTrc*,bool is2d=false) const;
62  inline SeisTrc* get( int idx )
63  { return trcs_.validIdx(idx) ? trcs_[idx] : 0; }
64  inline const SeisTrc* get( int idx ) const
65  { return trcs_.validIdx(idx) ? trcs_[idx] : 0; }
66  inline void remove( SeisTrc* t ) { if ( t ) trcs_ -= t; }
67  inline SeisTrc* remove( int idx )
68  {
69  if ( !trcs_.validIdx(idx) )
70  return 0;
71 
72  SeisTrc* t = trcs_[idx];
73  if (t) trcs_-=t; return t;
74  }
75 
76  SeisTrc* first() { return trcs_.first(); }
77  const SeisTrc* first() const { return trcs_.first(); }
78  SeisTrc* last() { return trcs_.last(); }
79  const SeisTrc* last() const { return trcs_.last(); }
80 
81  void revert(); // last becomes first
82  void fill(SeisPacketInfo&) const;
83 
84  bool isSorted(bool ascending,SeisTrcInfo::Fld) const;
85  void sort(bool ascending,SeisTrcInfo::Fld);
86  void sortForWrite(bool is2d);
87  void enforceNrTrcs(int nrrequired,SeisTrcInfo::Fld,
88  bool stack_before_remove=false);
90  float* getHdrVals(SeisTrcInfo::Fld,double& offs);
93 
94  bool dump(const char* filenm,bool is2d,bool isps,
95  int icomp=0) const;
97 
98 protected:
99 
101  bool owner_;
102 
103  int probableIdx(const BinID&,bool is2d) const;
104 
105 };
106 
107 
110 public:
112 
113  uiString uiMessage() const { return msg_; }
114  uiString uiNrDoneText() const { return tr("Traces read"); }
115  od_int64 nrDone() const { return buf_.size(); }
116  od_int64 totalNr() const { return totnr_; }
117  int nextStep();
118 
119 protected:
120 
123  int totnr_;
125 
126 };
127 
128 
SeisTrcBuf::add
void add(SeisTrcBuf &)
shallow copy if not owner
SeisTrcBuf::getHdrVals
float * getHdrVals(SeisTrcInfo::Fld, double &offs)
SeisTrcBuf::first
SeisTrc * first()
Definition: seisbuf.h:76
SeisTrcBuf::clone
virtual SeisTrcBuf * clone() const
Definition: seisbuf.h:44
SeisTrcBuf::sortForWrite
void sortForWrite(bool is2d)
SeisTrcBuf::get
SeisTrc * get(int idx)
Definition: seisbuf.h:62
SeisBufReader
Definition: seisbuf.h:109
uistring.h
SeisTrcReader
reads from a seismic data store.
Definition: seisread.h:50
SeisTrcBuf::dump
bool dump(const char *filenm, bool is2d, bool isps, int icomp=0) const
Simple file Ascii format.
SeisBufReader::nextStep
int nextStep()
ObjectSet< SeisTrc >
SeisTrcBuf::find
int find(const SeisTrc *, bool is2d=false) const
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
SeisTrcBuf::remove
void remove(SeisTrc *t)
Definition: seisbuf.h:66
SeisTrcBuf::stealTracesFrom
void stealTracesFrom(SeisTrcBuf &)
od_int64
#define od_int64
Definition: plftypes.h:35
SeisBufReader::SeisBufReader
SeisBufReader(SeisTrcReader &, SeisTrcBuf &)
MPE::trcs_
PtrMan< Array2DImpl< PtrMan< SeisTrc > > > trcs_
Definition: horizontracker.h:135
SeisTrcBuf::find
int find(const BinID &, bool is2d=false) const
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
SeisTrc
Seismic trace.
Definition: seistrc.h:34
SeisTrcBuf::last
SeisTrc * last()
Definition: seisbuf.h:78
SeisTrcBuf::isEmpty
bool isEmpty() const
Definition: seisbuf.h:51
SeisTrcBuf::remove
SeisTrc * remove(int idx)
Definition: seisbuf.h:67
SeisTrcInfo::Fld
Fld
Definition: seisinfo.h:76
SeisBufReader::totalNr
od_int64 totalNr() const
Definition: seisbuf.h:116
SeisPacketInfo
Information for a packet of seismics, AKA tape header info.
Definition: seispacketinfo.h:25
SeisTrcBuf
set of seismic traces.
Definition: seisbuf.h:31
SeisTrcBuf::isSorted
bool isSorted(bool ascending, SeisTrcInfo::Fld) const
SeisTrcBuf::sort
void sort(bool ascending, SeisTrcInfo::Fld)
SeisTrcBuf::first
const SeisTrc * first() const
Definition: seisbuf.h:77
SeisTrcBuf::last
const SeisTrc * last() const
Definition: seisbuf.h:79
SeisTrcBuf::add
void add(SeisTrc *t)
Definition: seisbuf.h:57
SeisTrcBuf::trcs_
ObjectSet< SeisTrc > trcs_
Definition: seisbuf.h:100
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
SeisTrcBuf::replace
SeisTrc * replace(int idx, SeisTrc *t)
Definition: seisbuf.h:55
SeisTrcBuf::setIsOwner
void setIsOwner(bool yn)
Definition: seisbuf.h:39
Executor
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
SeisTrcBuf::owner_
bool owner_
Definition: seisbuf.h:101
SeisTrcBuf::~SeisTrcBuf
virtual ~SeisTrcBuf()
Definition: seisbuf.h:38
SeisBufReader::nrDone
od_int64 nrDone() const
Definition: seisbuf.h:115
executor.h
SeisTrcBuf::enforceNrTrcs
void enforceNrTrcs(int nrrequired, SeisTrcInfo::Fld, bool stack_before_remove=false)
Makes sure nrtrcs per position is constant.
SeisBufReader::uiMessage
uiString uiMessage() const
will be message() again in 7.x
Definition: seisbuf.h:113
SeisTrcBuf::probableIdx
int probableIdx(const BinID &, bool is2d) const
deepErase
void deepErase(BufferStringSet &)
SeisTrcBuf::erase
void erase()
Definition: seisbuf.h:47
SeisBufReader::buf_
SeisTrcBuf & buf_
Definition: seisbuf.h:122
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
SeisTrcBuf::size
int size() const
Definition: seisbuf.h:50
SeisTrcBuf::get
const SeisTrc * get(int idx) const
Definition: seisbuf.h:64
SeisTrcBuf::revert
void revert()
SeisTrcBuf::mODTextTranslationClass
mODTextTranslationClass(SeisTrcBuf)
SeisTrcBuf::SeisTrcBuf
SeisTrcBuf(const SeisTrcBuf &b)
Definition: seisbuf.h:36
SeisTrcBuf::fill
void fill(SeisPacketInfo &) const
SeisTrcBuf::deepErase
void deepErase()
seisinfo.h
SeisTrcBuf::isOwner
bool isOwner() const
Definition: seisbuf.h:40
SeisBufReader::totnr_
int totnr_
Definition: seisbuf.h:123
SeisBufReader::uiNrDoneText
uiString uiNrDoneText() const
will be nrDoneText() in 7.x
Definition: seisbuf.h:114
SeisTrcBuf::copyInto
void copyInto(SeisTrcBuf &) const
SeisTrcBuf::SeisTrcBuf
SeisTrcBuf(bool ownr)
Definition: seisbuf.h:34
SeisBufReader::msg_
uiString msg_
Definition: seisbuf.h:124
SeisBufReader::rdr_
SeisTrcReader & rdr_
Definition: seisbuf.h:121
SeisTrcBuf::validIdx
bool validIdx(od_int64 idx) const
Definition: seisbuf.h:52
SeisBufReader::mODTextTranslationClass
mODTextTranslationClass(SeisBufReader)
SeisTrcBuf::insert
void insert(SeisTrc *, int atidx=0)

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