OpendTect  6.6
zaxistransform.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: K. Tingdahl
7  Date: October 2006
8  RCS: $Id$
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "algomod.h"
14 #include "enums.h"
15 #include "factory.h"
16 #include "binid.h"
17 #include "ranges.h"
18 #include "refcount.h"
19 #include "samplingdata.h"
20 #include "survgeom.h"
21 
22 class BinIDValue;
23 class TrcKeyZSampling;
24 class TaskRunner;
25 
26 namespace ZDomain { class Def; class Info; }
27 
38 public:
40 
41  static ZAxisTransform* create(const IOPar&);
45  virtual bool isOK() const { return true; }
46  virtual uiString errMsg() const { return errmsg_; }
47 
48  virtual bool needsVolumeOfInterest() const { return true; }
50  bool zistrans=false);
52  virtual void setVolumeOfInterest(int volid,
53  const TrcKeyZSampling&,
54  bool zistrans=false);
55  virtual void removeVolumeOfInterest(int volid);
56 
57  virtual bool loadDataIfMissing(int volid,TaskRunner* =0);
58 
59  virtual bool canTransformSurv(Pos::SurvID) const = 0;
60 
61  //Generic 2D and 3D
62  virtual void transformTrc(const TrcKey&,
63  const SamplingData<float>&,
64  int sz,float* res) const = 0;
65  float transformTrc(const TrcKey&,float z) const;
66  virtual void transformTrcBack(const TrcKey&,
67  const SamplingData<float>&,
68  int sz,float* res) const = 0;
69  float transformTrcBack(const TrcKey&,float z) const;
70 
71  virtual Interval<float> getZInterval(bool from) const = 0;
74  virtual float getZIntervalCenter(bool from) const;
77  virtual float getGoodZStep() const;
83  ZDomain::Info& fromZDomainInfo() { return fromzdomaininfo_; }
84  ZDomain::Info& toZDomainInfo() { return tozdomaininfo_; }
86  const ZDomain::Info& toZDomainInfo() const;
87  const char* fromZDomainKey() const;
88  const char* toZDomainKey() const;
89 
90  virtual float toZScale() const;
92  virtual float zScale() const { return toZScale(); }
95  virtual NotifierAccess* changeNotifier() { return 0; }
96  virtual void fillPar(IOPar&) const;
97  virtual bool usePar(const IOPar&);
98 
99 protected:
101  const ZDomain::Def& to);
102 
105  mutable uiString errmsg_;
106 
107 public: //Legacy stuff
108 
109  //3D
110  virtual void transform(const BinID&,
111  const SamplingData<float>&,
112  int sz,float* res) const;
113  float transform(const BinIDValue&) const;
114  float transform(const Coord3&) const;
115  virtual void transformBack(const BinID&,
116  const SamplingData<float>&,
117  int sz,float* res) const;
118  float transformBack(const BinIDValue&) const;
119  float transformBack(const Coord3&) const;
120  // 2D
121  virtual void transform2D(const char* linenm,int trcnr,
122  const SamplingData<float>&,
123  int sz,float* res) const;
124  float transform2D(const char* linenm,int trcnr,
125  float z) const;
126  virtual void transformBack2D(const char* linenm,int trcnr,
127  const SamplingData<float>&,
128  int sz,float* res) const;
129  float transformBack2D(const char* linenm,int trcnr,
130  float z) const;
131 };
132 
133 
139 {
140 public:
142  bool back,const SamplingData<double>&,
143  bool is2d);
145 
146  void setBinID(const BinID& bid);
147  void setTrcKey( const TrcKey& k ) { trckey_ = k ; }
148  void setLineName(const char*);
149  void setTrcNr(int);
150 
151  float operator[](int idx) const;
152  void computeCache(const Interval<int>& range);
153 
154 protected:
155 
157  bool back_;
158  bool is2d_;
161 
164 
165 };
166 
ZAxisTransform::removeVolumeOfInterest
virtual void removeVolumeOfInterest(int volid)
ZDomain
Definition: zdomain.h:20
ZDomain::Info
Information of z-domain.
Definition: zdomain.h:93
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
ZAxisTransform::transform
float transform(const BinIDValue &) const
ZAxisTransform::fromZDomainInfo
ZDomain::Info & fromZDomainInfo()
Definition: zaxistransform.h:83
ZAxisTransform::fillPar
virtual void fillPar(IOPar &) const
Conv::to
T to(const F &fr)
Definition: convert.h:34
ZDomain::Def
Definition of z-domain.
Definition: zdomain.h:41
factory.h
ZAxisTransform::transform
float transform(const Coord3 &) const
ZAxisTransform::fromZDomainInfo
const ZDomain::Info & fromZDomainInfo() const
ZAxisTransformSampler::computeCache
void computeCache(const Interval< int > &range)
ZAxisTransform::transformTrc
virtual void transformTrc(const TrcKey &, const SamplingData< float > &, int sz, float *res) const =0
ZAxisTransformSampler::setTrcKey
void setTrcKey(const TrcKey &k)
Definition: zaxistransform.h:147
ZAxisTransform::needsVolumeOfInterest
virtual bool needsVolumeOfInterest() const
Definition: zaxistransform.h:48
ZAxisTransform::transform2D
float transform2D(const char *linenm, int trcnr, float z) const
ZAxisTransform::toZDomainKey
const char * toZDomainKey() const
ZAxisTransformSampler::sd_
const SamplingData< double > sd_
Definition: zaxistransform.h:160
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
ZAxisTransform::transformBack
float transformBack(const BinIDValue &) const
Pos::SurvID
Index_Type SurvID
Definition: commontypes.h:84
ZAxisTransform::tozdomaininfo_
ZDomain::Info & tozdomaininfo_
Definition: zaxistransform.h:103
samplingdata.h
binid.h
ZAxisTransformSampler::transform_
const ZAxisTransform & transform_
Definition: zaxistransform.h:156
ZAxisTransformSampler::ZAxisTransformSampler
ZAxisTransformSampler(const ZAxisTransform &, bool back, const SamplingData< double > &, bool is2d)
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
ZAxisTransform::mDefineFactoryInClass
mDefineFactoryInClass(ZAxisTransform, factory)
ZAxisTransform::getGoodZStep
virtual float getGoodZStep() const
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
ZAxisTransform
Base class for z-axis transforms.
Definition: zaxistransform.h:37
ZAxisTransform::transformTrcBack
virtual void transformTrcBack(const TrcKey &, const SamplingData< float > &, int sz, float *res) const =0
ZAxisTransform::ZAxisTransform
ZAxisTransform(const ZDomain::Def &from, const ZDomain::Def &to)
ZAxisTransform::transformTrcBack
float transformTrcBack(const TrcKey &, float z) const
ZAxisTransform::transformBack
virtual void transformBack(const BinID &, const SamplingData< float > &, int sz, float *res) const
ZAxisTransform::toZScale
virtual float toZScale() const
ZAxisTransformSampler::is2d_
bool is2d_
Definition: zaxistransform.h:158
ZAxisTransform::zScale
virtual float zScale() const
Definition: zaxistransform.h:92
ZAxisTransformSampler::setTrcNr
void setTrcNr(int)
NotifierAccess
Interface class for Notifier. See comments there.
Definition: notify.h:22
ZAxisTransformSampler::firstcachesample_
int firstcachesample_
Definition: zaxistransform.h:163
SamplingData< float >
ZAxisTransform::changeNotifier
virtual NotifierAccess * changeNotifier()
Definition: zaxistransform.h:95
TaskRunner
Class that can execute a task.
Definition: task.h:170
ZAxisTransform::transformBack2D
float transformBack2D(const char *linenm, int trcnr, float z) const
ZAxisTransform::usePar
virtual bool usePar(const IOPar &)
ZAxisTransform::transform2D
virtual void transform2D(const char *linenm, int trcnr, const SamplingData< float > &, int sz, float *res) const
ZAxisTransform::addVolumeOfInterest
virtual int addVolumeOfInterest(const TrcKeyZSampling &, bool zistrans=false)
ZAxisTransform::isOK
virtual bool isOK() const
Definition: zaxistransform.h:45
ZAxisTransform::transformBack2D
virtual void transformBack2D(const char *linenm, int trcnr, const SamplingData< float > &, int sz, float *res) const
ZAxisTransform::getZInterval
virtual Interval< float > getZInterval(bool from) const =0
ZAxisTransformSampler::setLineName
void setLineName(const char *)
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
ZAxisTransform::transformBack
float transformBack(const Coord3 &) const
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
ZAxisTransform::mRefCountImpl
mRefCountImpl(ZAxisTransform)
enums.h
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
BinIDValue
BinID and a value.
Definition: binidvalue.h:31
ZAxisTransformSampler::back_
bool back_
Definition: zaxistransform.h:157
ZAxisTransform::fromzdomaininfo_
ZDomain::Info & fromzdomaininfo_
Definition: zaxistransform.h:104
refcount.h
ZAxisTransform::canTransformSurv
virtual bool canTransformSurv(Pos::SurvID) const =0
ZAxisTransform::toZDomainInfo
const ZDomain::Info & toZDomainInfo() const
ZAxisTransformSampler::~ZAxisTransformSampler
virtual ~ZAxisTransformSampler()
ZAxisTransform::setVolumeOfInterest
virtual void setVolumeOfInterest(int volid, const TrcKeyZSampling &, bool zistrans=false)
ZAxisTransformSampler::trckey_
TrcKey trckey_
Definition: zaxistransform.h:159
ZAxisTransform::toZDomainInfo
ZDomain::Info & toZDomainInfo()
Definition: zaxistransform.h:84
ZAxisTransform::loadDataIfMissing
virtual bool loadDataIfMissing(int volid, TaskRunner *=0)
ZAxisTransform::errMsg
virtual uiString errMsg() const
Definition: zaxistransform.h:46
ZAxisTransformSampler::cache_
TypeSet< float > cache_
Definition: zaxistransform.h:162
ranges.h
survgeom.h
ZAxisTransform::transformTrc
float transformTrc(const TrcKey &, float z) const
ZAxisTransform::fromZDomainKey
const char * fromZDomainKey() const
Interval< float >
ZAxisTransform::errmsg_
uiString errmsg_
Definition: zaxistransform.h:105
ZAxisTransformSampler::operator[]
float operator[](int idx) const
ZAxisTransform::create
static ZAxisTransform * create(const IOPar &)
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
ZAxisTransformSampler
Samples Z-axis transformed data.
Definition: zaxistransform.h:139
ZAxisTransform::getZIntervalCenter
virtual float getZIntervalCenter(bool from) const
ZAxisTransform::transform
virtual void transform(const BinID &, const SamplingData< float > &, int sz, float *res) const
ZAxisTransformSampler::setBinID
void setBinID(const BinID &bid)
TypeSet< float >

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