OpendTect  6.6
fourierinterpol.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: Bruno
8  Date: Sept 2011
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "algomod.h"
15 #include "algomod.h"
16 #include "arrayndimpl.h"
17 #include "odcomplex.h"
18 #include "ranges.h"
19 #include "paralleltask.h"
20 
21 namespace Fourier { class CC; };
22 
28 {
29 public:
30  void setTargetDomain(bool fourier);
32 protected:
35 
37 };
38 
39 
45  , public FourierInterpolBase
46 {
47 public:
48 
49  mStruct(Algo) Point
50  {
51  Point(float_complex v,float x)
52  : val_(v), pos_(x) {}
53 
54  float_complex val_;
55  float pos_;
56 
57  inline bool operator == (const Point& p) const
58  { return pos_ == p.pos_; }
59  };
60 
62  const StepInterval<float>& outsampling);
63 
65 
67  { return arrs_.isEmpty() ? 0 : arrs_[0]; }
68 
69 protected:
70  od_int64 nrIterations() const { return pts_.size(); }
71 
72  bool doPrepare(int);
74  bool doFinish(bool);
75 
77 
78  int sz_;
80 
82 };
83 
84 
90  , public FourierInterpolBase
91 {
92 public:
93 
94  mStruct(Algo) Point
95  {
96  Point(float_complex v,float x,float y)
97  : val_(v), xpos_(x) , ypos_(y) {}
98 
99  float_complex val_;
100  float xpos_, ypos_;
101 
102  inline bool operator == (const Point& p) const
103  { return xpos_ == p.xpos_ && ypos_ == p.ypos_; }
104  };
105 
107  const StepInterval<float>& xoutsampling,
108  const StepInterval<float>& youtsampling);
109 
111 
113  { return arrs_.isEmpty() ? 0 : arrs_[0]; }
114 
115 protected:
116  od_int64 nrIterations() const { return pts_.size(); }
117 
118  bool doPrepare(int);
120  bool doFinish(bool);
121 
123 
124  int szx_, szy_;
125  const StepInterval<float>& xsampling_, ysampling_;
126 
128 };
129 
130 
136  , public FourierInterpolBase
137 {
138 public:
139 
141  {
142  Point(float_complex v,float x,float y,float z)
143  : val_(v), xpos_(x) , ypos_(y) , zpos_(z) {}
144 
145  float_complex val_;
146  float xpos_, ypos_, zpos_;
147 
148  inline bool operator == (const Point& p) const
149  {
150  return xpos_ == p.xpos_
151  && ypos_ == p.ypos_
152  && zpos_ == p.zpos_;
153  }
154  };
155 
157  const StepInterval<float>& xoutsampling,
158  const StepInterval<float>& youtsampling,
159  const StepInterval<float>& zoutsampling);
160 
162 
164  { return arrs_.isEmpty() ? 0 : arrs_[0]; }
165 
166 protected:
167  od_int64 nrIterations() const { return pts_.size(); }
168 
169  bool doPrepare(int);
171  bool doFinish(bool);
172 
174 
175  int szx_, szy_, szz_;
176  const StepInterval<float>& xsampling_, ysampling_, zsampling_;
177 
179 };
180 
181 
FourierInterpol3D::nrIterations
od_int64 nrIterations() const
Definition: fourierinterpol.h:167
FourierInterpol2D
Fourier interpolation for 2D datasets.
Definition: fourierinterpol.h:91
FourierInterpolBase::~FourierInterpolBase
~FourierInterpolBase()
float_complex
std::complex< float > float_complex
Definition: odcomplex.h:17
FourierInterpol2D::doWork
bool doWork(od_int64, od_int64, int)
FourierInterpolBase
Base class for fourier interpolation.
Definition: fourierinterpol.h:28
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
Fourier::CC
Does Fourier Transforms of any size.
Definition: fourier.h:30
FourierInterpol1D::getOutput
const Array1DImpl< float_complex > * getOutput() const
Definition: fourierinterpol.h:66
Array1DImpl< float_complex >
FourierInterpol1D::sampling_
const StepInterval< float > & sampling_
Definition: fourierinterpol.h:79
od_int64
#define od_int64
Definition: plftypes.h:35
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
FourierInterpol3D::zsampling_
const StepInterval< float > zsampling_
Definition: fourierinterpol.h:176
FourierInterpol2D::szy_
int szy_
Definition: fourierinterpol.h:124
FourierInterpol3D::FourierInterpol3D
FourierInterpol3D(const TypeSet< Point > &pts, const StepInterval< float > &xoutsampling, const StepInterval< float > &youtsampling, const StepInterval< float > &zoutsampling)
FourierInterpol1D::~FourierInterpol1D
~FourierInterpol1D()
Array3DImpl< float_complex >
FourierInterpol1D::doFinish
bool doFinish(bool)
Point
@ Point
Definition: vishorizonsectiondef.h:30
FourierInterpol1D::pts_
const TypeSet< Point > & pts_
Definition: fourierinterpol.h:76
operator==
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:81
FourierInterpol2D::nrIterations
od_int64 nrIterations() const
Definition: fourierinterpol.h:116
arrayndimpl.h
FourierInterpol3D::doPrepare
bool doPrepare(int)
FourierInterpol3D::doFinish
bool doFinish(bool)
Fourier
Definition: convolve2d.h:26
StepInterval< float >
FourierInterpol2D::~FourierInterpol2D
~FourierInterpol2D()
FourierInterpol1D::FourierInterpol1D
FourierInterpol1D(const TypeSet< Point > &pts, const StepInterval< float > &outsampling)
FourierInterpol1D::sz_
int sz_
Definition: fourierinterpol.h:78
FourierInterpol2D::doFinish
bool doFinish(bool)
mStruct
#define mStruct(module)
Definition: commondefs.h:182
FourierInterpol1D::nrIterations
od_int64 nrIterations() const
Definition: fourierinterpol.h:70
FourierInterpol2D::ysampling_
const StepInterval< float > ysampling_
Definition: fourierinterpol.h:125
FourierInterpol3D
Fourier interpolation for 3D datasets.
Definition: fourierinterpol.h:137
FourierInterpol2D::arrs_
ObjectSet< Array2DImpl< float_complex > > arrs_
Definition: fourierinterpol.h:127
FourierInterpol2D::FourierInterpol2D
FourierInterpol2D(const TypeSet< Point > &pts, const StepInterval< float > &xoutsampling, const StepInterval< float > &youtsampling)
ParallelTask
Generalization of a task that can be run in parallel.
Definition: paralleltask.h:66
FourierInterpol3D::arrs_
ObjectSet< Array3DImpl< float_complex > > arrs_
Definition: fourierinterpol.h:178
FourierInterpol1D
Fourier interpolation for 1D datasets.
Definition: fourierinterpol.h:46
FourierInterpol2D::doPrepare
bool doPrepare(int)
Array2DImpl< float_complex >
FourierInterpol3D::szz_
int szz_
Definition: fourierinterpol.h:175
FourierInterpol1D::doWork
bool doWork(od_int64, od_int64, int)
FourierInterpol1D::doPrepare
bool doPrepare(int)
ArrayND::isEmpty
virtual bool isEmpty() const
Definition: arraynd.h:374
odcomplex.h
FourierInterpol3D::~FourierInterpol3D
~FourierInterpol3D()
FourierInterpol1D::arrs_
ObjectSet< Array1DImpl< float_complex > > arrs_
Definition: fourierinterpol.h:81
FourierInterpolBase::setTargetDomain
void setTargetDomain(bool fourier)
FourierInterpolBase::FourierInterpolBase
FourierInterpolBase()
FourierInterpol2D::pts_
const TypeSet< Point > & pts_
Definition: fourierinterpol.h:122
FourierInterpol2D::getOutput
const Array2DImpl< float_complex > * getOutput() const
Definition: fourierinterpol.h:112
FourierInterpol3D::pts_
const TypeSet< Point > & pts_
Definition: fourierinterpol.h:173
ranges.h
FourierInterpol3D::getOutput
const Array3DImpl< float_complex > * getOutput() const
Definition: fourierinterpol.h:163
paralleltask.h
FourierInterpolBase::fft_
Fourier::CC * fft_
Definition: fourierinterpol.h:36
FourierInterpol3D::doWork
bool doWork(od_int64, od_int64, int)
TypeSet< Point >

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