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

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