OpendTect  6.6
hilberttransform.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: Nanne Hemstra
8  Date: December 2007
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "algomod.h"
15 #include "transform.h"
16 #include "bufstring.h"
17 
18 class ArrayNDInfo;
19 template <class T> class ValueSeries;
20 template <class T> class ArrayND;
21 
22 
28 {
29 public:
32 
33  bool setInputInfo(const ArrayNDInfo&);
34  const ArrayNDInfo& getInputInfo() const { return *info_; }
35 
36  bool real2real() const { return true; }
37  bool real2complex() const { return false; }
38  bool complex2real() const { return false; }
39  bool complex2complex() const { return false; }
40 
41  bool biDirectional() const { return false; }
42  bool setDir(bool fw) { return fw; }
43  bool getDir() const { return forward_; }
44 
45  bool init();
46  void setHalfLen( int hl ) { halflen_ = hl; }
47  void setCalcRange(int startidx,int convstartidx);
48 
49  /*<! Will handle some undefined values
50  BUT will be very slow if there are mostly
51  undefined values.
52  Returns unchanged output if all input values are
53  undefined
54  */
55  bool transform(const float*,int szin,float*,int szout) const;
56  bool transform(const ValueSeries<float>&,int szin,
57  ValueSeries<float>&,int szout) const;
60  ArrayND<float_complex>&) const;
62  ArrayND<float_complex>&) const;
63 
64  uiString errMsg() const { return errmsg_; }
65 
66 protected:
67 
68  float* makeHilbWindow(int);
69  bool isPossible(int) const;
70  bool isFast( int ) const { return true; }
71 
72  bool transform(const float*,int szin,float*,int szout,
73  const ValueSeries<float>* in) const;
74 
75  bool forward_;
77  int halflen_;
78  float* hilbwindow_;
80  int startidx_;
82 
83  mutable uiString errmsg_;
84 };
85 
ValueSeries
Interface to a series of values.
Definition: odmemory.h:16
HilbertTransform::setCalcRange
void setCalcRange(int startidx, int convstartidx)
HilbertTransform::transform
bool transform(const float *, int szin, float *, int szout) const
HilbertTransform::biDirectional
bool biDirectional() const
Definition: hilberttransform.h:41
ArrayNDInfo
Contains the information about the size of ArrayND, and in what order the data is stored (if accessab...
Definition: arrayndinfo.h:25
HilbertTransform::isFast
bool isFast(int) const
Definition: hilberttransform.h:70
HilbertTransform::setInputInfo
bool setInputInfo(const ArrayNDInfo &)
HilbertTransform::startidx_
int startidx_
Definition: hilberttransform.h:80
HilbertTransform::real2real
bool real2real() const
Definition: hilberttransform.h:36
HilbertTransform::transform
bool transform(const ArrayND< float > &, ArrayND< float > &) const
HilbertTransform::convstartidx_
int convstartidx_
Definition: hilberttransform.h:81
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
HilbertTransform::transform
bool transform(const ValueSeries< float > &, int szin, ValueSeries< float > &, int szout) const
HilbertTransform::hilbwindow_
float * hilbwindow_
Definition: hilberttransform.h:78
bufstring.h
HilbertTransform::isPossible
bool isPossible(int) const
HilbertTransform::errmsg_
uiString errmsg_
Definition: hilberttransform.h:83
HilbertTransform
Class to compute Hilbert Transform.
Definition: hilberttransform.h:28
HilbertTransform::forward_
bool forward_
Definition: hilberttransform.h:75
HilbertTransform::nrsamples_
int nrsamples_
Definition: hilberttransform.h:76
HilbertTransform::HilbertTransform
HilbertTransform()
HilbertTransform::complex2complex
bool complex2complex() const
Definition: hilberttransform.h:39
HilbertTransform::transform
bool transform(const ArrayND< float > &, ArrayND< float_complex > &) const
HilbertTransform::complex2real
bool complex2real() const
Definition: hilberttransform.h:38
HilbertTransform::setDir
bool setDir(bool fw)
Definition: hilberttransform.h:42
HilbertTransform::getDir
bool getDir() const
Definition: hilberttransform.h:43
HilbertTransform::makeHilbWindow
float * makeHilbWindow(int)
HilbertTransform::init
bool init()
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
ArrayND
An ArrayND is an array with a given number of dimensions and a size.
Definition: arraynd.h:33
transform.h
HilbertTransform::errMsg
uiString errMsg() const
Definition: hilberttransform.h:64
HilbertTransform::transform
bool transform(const ArrayND< float_complex > &, ArrayND< float_complex > &) const
HilbertTransform::info_
ArrayNDInfo * info_
Definition: hilberttransform.h:79
HilbertTransform::halflen_
int halflen_
Definition: hilberttransform.h:77
HilbertTransform::~HilbertTransform
~HilbertTransform()
HilbertTransform::setHalfLen
void setHalfLen(int hl)
Definition: hilberttransform.h:46
HilbertTransform::transform
bool transform(const float *, int szin, float *, int szout, const ValueSeries< float > *in) const
HilbertTransform::getInputInfo
const ArrayNDInfo & getInputInfo() const
Definition: hilberttransform.h:34
HilbertTransform::real2complex
bool real2complex() const
Definition: hilberttransform.h:37

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