OpendTect-6_4  6.4
contcurvinterpol.h
Go to the documentation of this file.
1 #ifndef contcurvinterpol_h
2 #define contcurvinterpol_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Ding Zheng
9  Date: Apr 2015
10  RCS: $Id: array2dinterpolimpl.h 38585 2015-03-20 10:24:32Z kristofer.tingdahl@dgbes.com $
11 ________________________________________________________________________
12 
13 
14 -*/
15 
16 #include "array2dinterpol.h"
17 
20 public:
21  mDefaultFactoryInstantiation(Array2DInterpol,
23  "ContinuousCurvature",tr("Continuous curvature"))
24 
27 
28  bool setArray(Array2D<float>&,TaskRunner*);
29  bool setArray(ArrayAccess&,TaskRunner*);
30 
31  bool fillPar(IOPar&) const;
32  bool usePar(const IOPar&);
33 
34 protected:
35  virtual bool initFromArray(TaskRunner*);
36  bool doPrepare(int);
37  bool doWork(od_int64,od_int64,int);
38  int maxNrThreads() const { return 1; }
39  od_int64 nrIterations() const { return 1; }
40  od_int64 totalNr() const { return totalnr_; }
42  { return tr("Convergence iterations "); }
43 
44 private:
45  bool fillInputData();
46  bool removePlanarTrend();
47  void recoverPlanarTrend();
48  bool rescaleZValues();
49  int calcGcdEuclid();
50  int calcPrimeFactors(int);
51  int verifyGridSize(int);
52 
53  int getNextGridSize(int curgridsize);
54  bool setCoefficients();
55  void fillInForecast(int,int);
56  void findNearestPoint(int);
57  int doFiniteDifference(int);
58  void finalizeGrid();
59 
60  void updateGridConditions(int);
61  void updateEdgeConditions(int);
62  void updateGridIndex(int);
63  bool updateArray2D();
64 
65 
66  static const char* sKeyConvergence();
67  static const char* sKeyTension();
68  static const char* sKeySearchRadius();
69 
70  friend class HorizonDataComparer;
71  friend class GridInitializer;
72 
73  struct HorizonData
74  {
76  bool operator==( const HorizonData& ) const;
77  HorizonData& operator=( const HorizonData& );
78  float x_;
79  float y_;
80  float z_;
81  int index_;
82  };
83 
84  struct BriggsData
85  {
87  BriggsData(double dx,double dy, double z);
88  BriggsData& operator=(const BriggsData& brgdata);
89  bool operator==(const BriggsData& brgdata) const;
90  double b0_;
91  double b1_;
92  double b2_;
93  double b3_;
94  double b4_;
95  double b5_;
96  };
97 
98  // below function will be used after get correct intersection line between
99  //fault and horizon
100  void InterpolatingFault(const TypeSet<HorizonData>&,int);
101 
102  int totalnr_;
103  bool* curdefined_;
105  double tension_;
106  float radius_;
107  double planec0_;
108  double planec1_;
109  double planec2_;
111  double zscale_;
112  double zmean_;
113  int nfact_;
114  int nrdata_;
115 
116  int offset_[25][12];
117  double coeff_[2][12];
123 
124 };
125 
126 
127 #endif
#define mExpClass(module)
Definition: commondefs.h:160
Base class for two dimensional array interpolators.
Definition: array2dinterpol.h:34
od_int64 totalNr() const
Definition: contcurvinterpol.h:40
double zscale_
Definition: contcurvinterpol.h:111
uiString uiNrDoneText() const
will be nrDoneText() in 7.x
Definition: contcurvinterpol.h:41
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:53
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
float radius_
Definition: contcurvinterpol.h:106
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
#define od_int64
Definition: plftypes.h:36
double planec2_
Definition: contcurvinterpol.h:109
Definition: contcurvinterpol.h:73
Definition: contcurvinterpol.h:18
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:289
double b0_
Definition: contcurvinterpol.h:90
Definition: uistring.h:89
Definition: array2dinterpol.h:72
float x_
Definition: contcurvinterpol.h:78
double b1_
Definition: contcurvinterpol.h:91
Definition: contcurvinterpol.h:84
float z_
Definition: contcurvinterpol.h:80
Set of (small) copyable elements.
Definition: commontypes.h:30
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
Class that can execute a task.
Definition: task.h:169
ArrPtrMan< char > gridstatus_
Definition: contcurvinterpol.h:121
HorizonData()
Definition: contcurvinterpol.h:75
TypeSet< int > factors_
Definition: contcurvinterpol.h:118
int nfact_
Definition: contcurvinterpol.h:113
bool * curdefined_
Definition: contcurvinterpol.h:103
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
int maxNrThreads() const
Definition: contcurvinterpol.h:38
int totalnr_
Definition: contcurvinterpol.h:102
double zmean_
Definition: contcurvinterpol.h:112
Definition: ptrman.h:119
BriggsData()
Definition: contcurvinterpol.h:86
double tension_
Definition: contcurvinterpol.h:105
int index_
Definition: contcurvinterpol.h:81
ArrPtrMan< float > griddata_
Definition: contcurvinterpol.h:120
double b4_
Definition: contcurvinterpol.h:94
double convergelimit_
Definition: contcurvinterpol.h:110
double b2_
Definition: contcurvinterpol.h:92
od_int64 nrIterations() const
Definition: contcurvinterpol.h:39
double b3_
Definition: contcurvinterpol.h:93
float y_
Definition: contcurvinterpol.h:79
ArrPtrMan< HorizonData > hordata_
Definition: contcurvinterpol.h:119
double planec1_
Definition: contcurvinterpol.h:108
double b5_
Definition: contcurvinterpol.h:95
int nrdata_
Definition: contcurvinterpol.h:114
ArrPtrMan< BriggsData > briggs_
Definition: contcurvinterpol.h:122
double planec0_
Definition: contcurvinterpol.h:107
bool * nodestofill_
Definition: contcurvinterpol.h:104

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