OpendTect  6.6
emsurfaceauxdata.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: Kristofer Tingdahl
8  Date: 4-11-2002
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "earthmodelmod.h"
16 #include "typeset.h"
17 #include "bufstringset.h"
18 #include "emposid.h"
19 #include "uistring.h"
20 
21 class Executor;
22 class IOObj;
23 class BinIDValueSet;
24 class TrcKeySampling;
25 
26 template <class T> class Array2D;
27 namespace Pos { class Filter; }
28 
29 namespace EM
30 {
31 
32 class Horizon3D;
33 class PosID;
34 
35 
42 public:
44  virtual ~SurfaceAuxData();
45 
46  Executor* auxDataLoader(int selidx=-1);
47  Executor* auxDataLoader(const char* nm);
48  Executor* auxDataSaver(int dataidx=0,bool overwrite=false);
49 
50  void removeAll();
51  void removeSection(const SectionID&);
52 
53  int nrAuxData() const;
63  bool hasAuxDataName(const char*) const;
64  const char* auxDataName(int dataidx) const;
67  int auxDataIndex(const char*) const;
69  int addAuxData(const char* name);
73  void setAuxDataName(int dataidx,const char*);
74  void removeAuxData(int dataidx);
75  float getAuxDataVal(int dataidx,const PosID& posid) const;
76  float getAuxDataVal(int dataidx,const TrcKey&) const;
77  void setAuxDataVal(int dataidx,const PosID& posid,float val);
78  void setAuxDataVal(int dataidx,const PosID& posid,float val,
79  bool onlynewpos);
80  void setAuxDataVal(int dataidx,const TrcKey&,float val);
81 
82  void setAuxDataShift(int,float);
83  float auxDataShift(int) const;
84 
85  bool isChanged(int) const;
87 
88  static bool hasAttribute(const IOObj&,const char* attrnm);
89  static BufferString getFileName(const IOObj&,const char* attrnm);
90  static BufferString getFileName(const char* fullexp,const char* attrnm);
92  static bool removeFile(const IOObj&,const char* attrnm);
93  BufferString getFileName(const char* attrnm) const;
94  bool removeFile(const char* attrnm) const;
95 
96  void init(int dataidx,bool onlynewpos=false,
97  float val=mUdf(float));
101  void setArray2D(int dataidx,SectionID,const Array2D<float>&,
102  const TrcKeySampling* tks=nullptr);
106  const ObjectSet<BinIDValueSet>& getData() const { return auxdata_; }
107 
108  bool usePar( const IOPar& );
109  void fillPar( IOPar& ) const;
110  void init(int dataidx,float val=mUdf(float));
112  enum AuxDataType { NoType=0, AutoShow, Tracking };
113  void setAuxDataType(int dataidx,AuxDataType);
114  AuxDataType getAuxDataType(int dataidx) const;
115 
116  void apply(const Pos::Filter&,int dataidx=-1);
117 
118 protected:
120 
121  //One entry per auxdata
125  //One entry per section
127  bool changed_;
129 };
130 
131 } // namespace EM
132 
TrcKeySampling
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:35
EM::SurfaceAuxData::auxDataShift
float auxDataShift(int) const
emposid.h
EM::SurfaceAuxData::removeFile
static bool removeFile(const IOObj &, const char *attrnm)
EM::SurfaceAuxData::addAuxData
int addAuxData(const char *name)
EM::SurfaceAuxData::hasAttribute
static bool hasAttribute(const IOObj &, const char *attrnm)
uistring.h
EM::SurfaceAuxData::getFileName
BufferString getFileName(const char *attrnm) const
Pos
Position.
Definition: commontypes.h:78
ObjectSet< BinIDValueSet >
EM::SurfaceAuxData::init
void init(int dataidx, bool onlynewpos=false, float val=mUdf(float))
BinIDValueSet
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:23
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
EM::SurfaceAuxData::usePar
bool usePar(const IOPar &)
EM::SurfaceAuxData::isChanged
bool isChanged(int) const
EM::SurfaceAuxData::fillPar
void fillPar(IOPar &) const
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
EM::SurfaceAuxData::nrAuxData
int nrAuxData() const
EM::SurfaceAuxData::hasAuxDataName
bool hasAuxDataName(const char *) const
EM::SurfaceAuxData::AuxDataType
AuxDataType
Definition: emsurfaceauxdata.h:112
EM::SurfaceAuxData::changed_
bool changed_
Definition: emsurfaceauxdata.h:127
typeset.h
EM::SurfaceAuxData::auxdata_
ObjectSet< BinIDValueSet > auxdata_
Definition: emsurfaceauxdata.h:126
EM::SurfaceAuxData::removeFile
bool removeFile(const char *attrnm) const
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
EM::SurfaceAuxData::auxDataSaver
Executor * auxDataSaver(int dataidx=0, bool overwrite=false)
mODTextTranslationClass
#define mODTextTranslationClass(clss)
Definition: uistring.h:40
EM::SurfaceAuxData::auxdatashift_
TypeSet< float > auxdatashift_
Definition: emsurfaceauxdata.h:124
EM::SurfaceAuxData::getAuxDataVal
float getAuxDataVal(int dataidx, const PosID &posid) const
EM::SurfaceAuxData::init
void init(int dataidx, float val=mUdf(float))
sKey::Filter
FixedString Filter()
Definition: keystrs.h:69
EM::SurfaceAuxData::resetChangedFlag
void resetChangedFlag()
EM::SurfaceAuxData::getFileName
static BufferString getFileName(const IOObj &, const char *attrnm)
EM::SurfaceAuxData::removeSection
void removeSection(const SectionID &)
EM::SurfaceAuxData::getAuxDataVal
float getAuxDataVal(int dataidx, const TrcKey &) const
EM::SurfaceAuxData::createArray2D
Array2D< float > * createArray2D(int dataidx, SectionID) const
EM::SurfaceAuxData::auxDataLoader
Executor * auxDataLoader(int selidx=-1)
EM::SurfaceAuxData::setAuxDataVal
void setAuxDataVal(int dataidx, const PosID &posid, float val)
Executor
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
EM::SurfaceAuxData::setAuxDataVal
void setAuxDataVal(int dataidx, const TrcKey &, float val)
IOObj
Definition: ioobj.h:58
EM::SurfaceAuxData::removeAuxData
void removeAuxData(int dataidx)
EM::SurfaceAuxData::auxDataName
const char * auxDataName(int dataidx) const
EM::SurfaceAuxData
Surface data.
Definition: emsurfaceauxdata.h:41
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
EM::SectionID
od_int16 SectionID
Definition: emposid.h:24
bufstringset.h
EM::SurfaceAuxData::getFileName
static BufferString getFileName(const char *fullexp, const char *attrnm)
Pos::Filter
Decides whether a given position should be included.
Definition: posfilter.h:45
EM::SurfaceAuxData::~SurfaceAuxData
virtual mODTextTranslationClass(SurfaceAuxData) public ~SurfaceAuxData()
EM::SurfaceAuxData::setAuxDataShift
void setAuxDataShift(int, float)
EM::SurfaceAuxData::auxdatanames_
BufferStringSet auxdatanames_
Definition: emsurfaceauxdata.h:122
EM::SurfaceAuxData::removeAll
void removeAll()
EM::SurfaceAuxData::getAuxDataType
AuxDataType getAuxDataType(int dataidx) const
EM::SurfaceAuxData::setAuxDataType
void setAuxDataType(int dataidx, AuxDataType)
EM::SurfaceAuxData::auxDataLoader
Executor * auxDataLoader(const char *nm)
EM::SurfaceAuxData::auxdatainfo_
BufferStringSet auxdatainfo_
Definition: emsurfaceauxdata.h:123
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
EM::SurfaceAuxData::getData
const ObjectSet< BinIDValueSet > & getData() const
Definition: emsurfaceauxdata.h:106
EM::SurfaceAuxData::setAuxDataVal
void setAuxDataVal(int dataidx, const PosID &posid, float val, bool onlynewpos)
EM::SurfaceAuxData::horizon_
Horizon3D & horizon_
Definition: emsurfaceauxdata.h:119
EM::SurfaceAuxData::apply
void apply(const Pos::Filter &, int dataidx=-1)
EM::SurfaceAuxData::getFreeFileName
static BufferString getFreeFileName(const IOObj &)
EM::SurfaceAuxData::auxdatatypes_
TypeSet< AuxDataType > auxdatatypes_
Definition: emsurfaceauxdata.h:128
EM::SurfaceAuxData::auxDataIndex
int auxDataIndex(const char *) const
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
EM::Horizon3D
3D Horizon. A Horizon is made up of one or more grids (so they can overlap at faults)....
Definition: emhorizon3d.h:96
Array2D
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:140
EM::SurfaceAuxData::setArray2D
void setArray2D(int dataidx, SectionID, const Array2D< float > &, const TrcKeySampling *tks=nullptr)
EM::PosID
Is an identifier for each position in the earthmodel.
Definition: emposid.h:37
TypeSet< float >
EM::SurfaceAuxData::setAuxDataName
void setAuxDataName(int dataidx, const char *)

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