OpendTect  6.6
transform.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: 10-12-1999
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "algomod.h"
16 #include "task.h"
17 #include "sets.h"
18 #include "odcomplex.h"
19 
20 class ArrayNDInfo;
21 template <class T> class ArrayND;
22 
23 
31 {
32 public:
34  bool setInputInfo(const ArrayNDInfo&);
35  const ArrayNDInfo& getInputInfo() const;
36 
37  void setInput(const float*);
38  void setInput(const float_complex*);
39  void setOutput(float*);
41 
42  void setSampling(int);
43  void setScope(int nr,int batchsampling);
47  void setScope(int nr,const int* batchstarts);
52  bool setDir(bool forward);
53  bool getDir() const { return forward_; }
54  //true for forward
55  bool run(bool parallel);
56  //SequentialTask::execute can be used as well
57 
59 protected:
60  virtual bool setup();
61  int nextStep();
62 
63  class Transform1D;
64  virtual Transform1D* createTransform() const = 0;
65 
69 
70  bool forward_;
71  int sampling_;
73  const int* batchstarts_;
74  int nr_;
75 
77  int curdim_;
78  bool parallel_;
79 
81  const float* rinput_;
83  float* routput_;
84 
86  {
87  public:
88  virtual ~Transform1D() {}
90  void setInputData(const float*);
92  void setOutputData(float*);
93 
94  void setSize(int);
95  void setDir(bool forward);
96  void setSampling(int);
98  void setScope(int nr,int batchsampling);
102  void setScope(int nr,const int* batchstarts);
107  virtual bool init() { return true; }
108  virtual bool run(bool parallel) = 0;
109 
110  protected:
111 
113 
114  int sz_;
115  bool forward_;
117  int nr_;
119  const int* batchstarts_;
120 
122  const float* rinput_;
124  float* routput_;
125  };
126 };
127 
GenericTransformND::Transform1D::batchsampling_
int batchsampling_
Definition: transform.h:118
GenericTransformND::Transform1D::setDir
void setDir(bool forward)
GenericTransformND::Transform1D::setOutputData
void setOutputData(float_complex *)
task.h
float_complex
std::complex< float > float_complex
Definition: odcomplex.h:17
GenericTransformND::curdim_
int curdim_
Definition: transform.h:77
GenericTransformND::nr1dtransforms_
TypeSet< int > nr1dtransforms_
Definition: transform.h:68
ArrayNDInfo
Contains the information about the size of ArrayND, and in what order the data is stored (if accessab...
Definition: arrayndinfo.h:25
GenericTransformND::Transform1D::rinput_
const float * rinput_
Definition: transform.h:122
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
GenericTransformND::Transform1D::batchstarts_
const int * batchstarts_
Definition: transform.h:119
GenericTransformND::Transform1D::Transform1D
Transform1D()
GenericTransformND::sampling_
int sampling_
Definition: transform.h:71
GenericTransformND::setSampling
void setSampling(int)
GenericTransformND::setup
virtual bool setup()
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
GenericTransformND::Transform1D::~Transform1D
virtual ~Transform1D()
Definition: transform.h:88
GenericTransformND::getDir
bool getDir() const
Definition: transform.h:53
GenericTransformND::batchsampling_
int batchsampling_
Definition: transform.h:72
GenericTransformND::Transform1D::sampling_
int sampling_
Definition: transform.h:116
GenericTransformND::info_
ArrayNDInfo * info_
Definition: transform.h:76
GenericTransformND::run
bool run(bool parallel)
GenericTransformND::Transform1D
Definition: transform.h:86
GenericTransformND::setOutput
void setOutput(float_complex *)
GenericTransformND::setInput
void setInput(const float *)
GenericTransformND::parallel_
bool parallel_
Definition: transform.h:78
GenericTransformND::nextStep
int nextStep()
GenericTransformND
Lets any 1D orthogonal transform (GenericTransformND::GenericTransform1D) be extended to ND....
Definition: transform.h:31
GenericTransformND::~GenericTransformND
~GenericTransformND()
GenericTransformND::setScope
void setScope(int nr, const int *batchstarts)
GenericTransformND::cinput_
const float_complex * cinput_
Definition: transform.h:80
GenericTransformND::Transform1D::setSampling
void setSampling(int)
GenericTransformND::Transform1D::setScope
void setScope(int nr, const int *batchstarts)
GenericTransformND::Transform1D::coutput_
float_complex * coutput_
Definition: transform.h:123
GenericTransformND::Transform1D::setInputData
void setInputData(const float_complex *)
GenericTransformND::Transform1D::sz_
int sz_
Definition: transform.h:114
GenericTransformND::setInputInfo
bool setInputInfo(const ArrayNDInfo &)
GenericTransformND::getInputInfo
const ArrayNDInfo & getInputInfo() const
GenericTransformND::setScope
void setScope(int nr, int batchsampling)
GenericTransformND::createTransform
virtual Transform1D * createTransform() const =0
GenericTransformND::Transform1D::run
virtual bool run(bool parallel)=0
GenericTransformND::Transform1D::routput_
float * routput_
Definition: transform.h:124
GenericTransformND::Transform1D::setOutputData
void setOutputData(float *)
GenericTransformND::Transform1D::setInputData
void setInputData(const float *)
GenericTransformND::Transform1D::nr_
int nr_
Definition: transform.h:117
GenericTransformND::setDir
bool setDir(bool forward)
GenericTransformND::coutput_
float_complex * coutput_
Definition: transform.h:82
GenericTransformND::setInput
void setInput(const float_complex *)
GenericTransformND::transforms_
ObjectSet< Transform1D > transforms_
Definition: transform.h:66
GenericTransformND::GenericTransformND
GenericTransformND()
GenericTransformND::nr_
int nr_
Definition: transform.h:74
GenericTransformND::forward_
bool forward_
Definition: transform.h:70
GenericTransformND::Transform1D::forward_
bool forward_
Definition: transform.h:115
GenericTransformND::Transform1D::setScope
void setScope(int nr, int batchsampling)
GenericTransformND::batchstarts_
const int * batchstarts_
Definition: transform.h:73
ArrayND
An ArrayND is an array with a given number of dimensions and a size.
Definition: arraynd.h:33
GenericTransformND::transforms1dstarts_
ObjectSet< int > transforms1dstarts_
Definition: transform.h:67
odcomplex.h
GenericTransformND::routput_
float * routput_
Definition: transform.h:83
GenericTransformND::Transform1D::cinput_
const float_complex * cinput_
Definition: transform.h:121
GenericTransformND::setOutput
void setOutput(float *)
GenericTransformND::Transform1D::init
virtual bool init()
Definition: transform.h:107
GenericTransformND::rinput_
const float * rinput_
Definition: transform.h:81
sets.h
SequentialTask
The generalization of something (e.g. a computation) where the steps must be done in sequence,...
Definition: task.h:125
GenericTransformND::Transform1D::setSize
void setSize(int)
TypeSet< int >

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