OpendTect  6.6
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:
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();
49  int calcPrimeFactors(int);
50  int verifyGridSize(int);
51 
52  int getNextGridSize(int curgridsize);
54  void fillInForecast(int,int);
55  void findNearestPoint(int);
57  void finalizeGrid();
58 
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;
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
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 };
124 
125 
ContinuousCurvatureArray2DInterpol::mODTextTranslationClass
mODTextTranslationClass(ContinuousCurvatureArray2DInterpol)
ContinuousCurvatureArray2DInterpol::recoverPlanarTrend
void recoverPlanarTrend()
ContinuousCurvatureArray2DInterpol::griddata_
ArrPtrMan< float > griddata_
Definition: contcurvinterpol.h:119
ContinuousCurvatureArray2DInterpol::convergelimit_
double convergelimit_
Definition: contcurvinterpol.h:109
ContinuousCurvatureArray2DInterpol::rescaleZValues
bool rescaleZValues()
Array2DInterpol
Base class for two dimensional array interpolators.
Definition: array2dinterpol.h:34
ContinuousCurvatureArray2DInterpol::BriggsData::b1_
double b1_
Definition: contcurvinterpol.h:90
ContinuousCurvatureArray2DInterpol::fillInputData
bool fillInputData()
ContinuousCurvatureArray2DInterpol::BriggsData::b5_
double b5_
Definition: contcurvinterpol.h:94
ContinuousCurvatureArray2DInterpol::HorizonData::operator==
bool operator==(const HorizonData &) const
od_int64
#define od_int64
Definition: plftypes.h:35
ContinuousCurvatureArray2DInterpol::hordata_
ArrPtrMan< HorizonData > hordata_
Definition: contcurvinterpol.h:118
ContinuousCurvatureArray2DInterpol::removePlanarTrend
bool removePlanarTrend()
ContinuousCurvatureArray2DInterpol::mDefaultFactoryInstantiation
mDefaultFactoryInstantiation(Array2DInterpol, ContinuousCurvatureArray2DInterpol, "ContinuousCurvature", tr("Continuous curvature")) ContinuousCurvatureArray2DInterpol()
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
ContinuousCurvatureArray2DInterpol::nfact_
int nfact_
Definition: contcurvinterpol.h:112
ContinuousCurvatureArray2DInterpol::HorizonData::HorizonData
HorizonData()
Definition: contcurvinterpol.h:74
ContinuousCurvatureArray2DInterpol::BriggsData::b2_
double b2_
Definition: contcurvinterpol.h:91
ContinuousCurvatureArray2DInterpol::updateGridIndex
void updateGridIndex(int)
ContinuousCurvatureArray2DInterpol::doFiniteDifference
int doFiniteDifference(int)
usePar
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
ContinuousCurvatureArray2DInterpol::totalnr_
int totalnr_
Definition: contcurvinterpol.h:101
ContinuousCurvatureArray2DInterpol::calcGcdEuclid
int calcGcdEuclid()
ContinuousCurvatureArray2DInterpol::gridstatus_
ArrPtrMan< char > gridstatus_
Definition: contcurvinterpol.h:120
ContinuousCurvatureArray2DInterpol::HorizonData
Definition: contcurvinterpol.h:73
ContinuousCurvatureArray2DInterpol::setCoefficients
bool setCoefficients()
ContinuousCurvatureArray2DInterpol::HorizonData::operator=
HorizonData & operator=(const HorizonData &)
ContinuousCurvatureArray2DInterpol::planec1_
double planec1_
Definition: contcurvinterpol.h:107
ContinuousCurvatureArray2DInterpol::BriggsData::operator==
bool operator==(const BriggsData &brgdata) const
ContinuousCurvatureArray2DInterpol::HorizonData::index_
int index_
Definition: contcurvinterpol.h:80
ContinuousCurvatureArray2DInterpol::fillInForecast
void fillInForecast(int, int)
ContinuousCurvatureArray2DInterpol::BriggsData::b4_
double b4_
Definition: contcurvinterpol.h:93
ContinuousCurvatureArray2DInterpol::tension_
double tension_
Definition: contcurvinterpol.h:104
ContinuousCurvatureArray2DInterpol::verifyGridSize
int verifyGridSize(int)
ContinuousCurvatureArray2DInterpol::totalNr
od_int64 totalNr() const
Definition: contcurvinterpol.h:39
ContinuousCurvatureArray2DInterpol::HorizonData::y_
float y_
Definition: contcurvinterpol.h:78
ContinuousCurvatureArray2DInterpol::BriggsData::BriggsData
BriggsData()
Definition: contcurvinterpol.h:85
ContinuousCurvatureArray2DInterpol::nrIterations
od_int64 nrIterations() const
Definition: contcurvinterpol.h:38
ContinuousCurvatureArray2DInterpol::zscale_
double zscale_
Definition: contcurvinterpol.h:110
ContinuousCurvatureArray2DInterpol::getNextGridSize
int getNextGridSize(int curgridsize)
ContinuousCurvatureArray2DInterpol::InterpolatingFault
void InterpolatingFault(const TypeSet< HorizonData > &, int)
ContinuousCurvatureArray2DInterpol::radius_
float radius_
Definition: contcurvinterpol.h:105
ContinuousCurvatureArray2DInterpol::planec2_
double planec2_
Definition: contcurvinterpol.h:108
ArrPtrMan
Definition: ptrman.h:160
ContinuousCurvatureArray2DInterpol::findNearestPoint
void findNearestPoint(int)
TaskRunner
Class that can execute a task.
Definition: task.h:170
ContinuousCurvatureArray2DInterpol::updateArray2D
bool updateArray2D()
ContinuousCurvatureArray2DInterpol
Definition: contcurvinterpol.h:18
ContinuousCurvatureArray2DInterpol::BriggsData::b0_
double b0_
Definition: contcurvinterpol.h:89
ContinuousCurvatureArray2DInterpol::sKeyConvergence
static const char * sKeyConvergence()
ContinuousCurvatureArray2DInterpol::nrdata_
int nrdata_
Definition: contcurvinterpol.h:113
ContinuousCurvatureArray2DInterpol::briggs_
ArrPtrMan< BriggsData > briggs_
Definition: contcurvinterpol.h:121
fillPar
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:174
ContinuousCurvatureArray2DInterpol::BriggsData
Definition: contcurvinterpol.h:84
ContinuousCurvatureArray2DInterpol::finalizeGrid
void finalizeGrid()
ContinuousCurvatureArray2DInterpol::BriggsData::b3_
double b3_
Definition: contcurvinterpol.h:92
ContinuousCurvatureArray2DInterpol::BriggsData::operator=
BriggsData & operator=(const BriggsData &brgdata)
ContinuousCurvatureArray2DInterpol::planec0_
double planec0_
Definition: contcurvinterpol.h:106
ContinuousCurvatureArray2DInterpol::sKeySearchRadius
static const char * sKeySearchRadius()
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
ContinuousCurvatureArray2DInterpol::nodestofill_
bool * nodestofill_
Definition: contcurvinterpol.h:103
ContinuousCurvatureArray2DInterpol::sKeyTension
static const char * sKeyTension()
ContinuousCurvatureArray2DInterpol::updateGridConditions
void updateGridConditions(int)
ContinuousCurvatureArray2DInterpol::uiNrDoneText
uiString uiNrDoneText() const
will be nrDoneText() in 7.x
Definition: contcurvinterpol.h:40
ContinuousCurvatureArray2DInterpol::updateEdgeConditions
void updateEdgeConditions(int)
ContinuousCurvatureArray2DInterpol::HorizonData::x_
float x_
Definition: contcurvinterpol.h:77
ContinuousCurvatureArray2DInterpol::curdefined_
bool * curdefined_
Definition: contcurvinterpol.h:102
Array2DInterpol::ArrayAccess
Definition: array2dinterpol.h:72
ContinuousCurvatureArray2DInterpol::calcPrimeFactors
int calcPrimeFactors(int)
ContinuousCurvatureArray2DInterpol::HorizonData::z_
float z_
Definition: contcurvinterpol.h:79
array2dinterpol.h
ContinuousCurvatureArray2DInterpol::factors_
TypeSet< int > factors_
Definition: contcurvinterpol.h:117
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Array2D
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:140
ContinuousCurvatureArray2DInterpol::BriggsData::BriggsData
BriggsData(double dx, double dy, double z)
ContinuousCurvatureArray2DInterpol::zmean_
double zmean_
Definition: contcurvinterpol.h:111
TypeSet
Sets of (small) copyable elements.
Definition: commontypes.h:29

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