OpendTect  6.6
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Array2DInterpol Class Reference

Base class for two dimensional array interpolators. More...

Inheritance diagram for Array2DInterpol:
[legend]

Classes

class  ArrayAccess
 

Public Types

enum  FillType { HolesOnly , ConvexHull , Full , Polygon }
 
- Public Types inherited from Task
enum  Control { Run , Pause , Stop }
 
- Public Types inherited from ObjectWithName
typedef OD::String name_type
 

Public Member Functions

virtual ~Array2DInterpol ()
 
virtual bool canUseArrayAccess () const
 
void doPolygonCrop ()
 
virtual bool fillPar (IOPar &) const
 
FillType getFillType () const
 
float getMaxHoleSize () const
 
virtual uiString infoMsg () const
 
bool isClassification () const
 
virtual bool nothingToFill () const
 
virtual bool setArray (Array2D< float > &, TaskRunner *=0)
 Set AFTER all settings. More...
 
virtual bool setArray (ArrayAccess &, TaskRunner *=0)
 Set AFTER all settings. More...
 
void setClassification (bool)
 
void setColStep (float r)
 
void setFillType (FillType)
 
void setMask (const Array2D< bool > *, OD::PtrPolicy=OD::UsePtr)
 
void setMaxHoleSize (float)
 
void setOrigin (const RowCol &)
 
void setRowStep (float r)
 
void setSampling (const TrcKeySampling &)
 Set both steps and the origin. More...
 
void setTrendOrder (PolyTrend::Order ord)
 
bool trimArray (int step, Array2D< char > &edgesmask)
 
uiString uiMessage () const
 will be message() again in 7.x More...
 
virtual bool usePar (const IOPar &)
 
- Public Member Functions inherited from ParallelTask
virtual ~ParallelTask ()
 
bool execute ()
 
virtual bool executeParallel (bool parallel)
 
int64_t nrDone () const
 May be -1, i.e. class does not report nrdone. More...
 
void setProgressMeter (ProgressMeter *)
 Must be called before execute() More...
 
int64_t totalNr () const
 
- Public Member Functions inherited from Task
virtual ~Task ()
 
virtual void controlWork (Control)
 
virtual void enableWorkControl (bool=true)
 Must be called before execute() More...
 
virtual uiRetVal errorWithDetails () const
 
virtual Control getState () const
 
virtual uiString uiNrDoneText () const
 will be nrDoneText() in 7.x More...
 
bool workControlEnabled () const
 
- Public Member Functions inherited from NamedCallBacker
 NamedCallBacker (const char *nm=0)
 
 NamedCallBacker (const NamedCallBacker &)
 
virtual Notifier< NamedCallBacker > & objectToBeDeleted () const
 
bool operator== (const NamedCallBacker &oth) const
 
bool operator== (const NamedObject &oth) const
 
- Public Member Functions inherited from CallBacker
 CallBacker ()
 
 CallBacker (const CallBacker &)
 
virtual ~CallBacker ()
 
bool attachCB (const NotifierAccess &, const CallBack &, bool onlyifnew=false) const
 
bool attachCB (const NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false) const
 
void detachAllNotifiers () const
 Call from the destructor of your inherited object. More...
 
void detachCB (const NotifierAccess &, const CallBack &) const
 
void detachCB (const NotifierAccess *notif, const CallBack &cb) const
 
virtual bool isCapsule () const
 
bool isNotifierAttached (const NotifierAccess *) const
 Only for debugging purposes, don't use. More...
 
void stopReceivingNotifications () const
 
- Public Member Functions inherited from NamedObject
 NamedObject (const char *nm=nullptr)
 
 NamedObject (const NamedObject &oth)
 
virtual ~NamedObject ()
 
virtual BufferString getName () const
 
bool getNameFromPar (const IOPar &)
 
virtual const name_typename () const
 
NamedObjectoperator= (const NamedObject &)
 
bool operator== (const NamedObject &oth) const
 
virtual void setName (const char *nm)
 
- Public Member Functions inherited from ObjectWithName
virtual ~ObjectWithName ()
 
bool hasName (const char *nm) const
 
bool hasName (const name_type &nm) const
 
void putNameInPar (IOPar &) const
 

Static Public Member Functions

static const char * sKeyColStep ()
 
static const char * sKeyCropPolygon ()
 
static const char * sKeyFillType ()
 
static const char * sKeyMaxHoleSz ()
 
static const char * sKeyNrCells ()
 
static const char * sKeyNrCols ()
 
static const char * sKeyNrRows ()
 
static const char * sKeyOrigin ()
 
static const char * sKeyPolyNode ()
 
static const char * sKeyPolyNrofNodes ()
 
static const char * sKeyRowStep ()
 
- Static Public Member Functions inherited from ParallelTask
static uiString sPosFinished ()
 
static uiString sTrcFinished ()
 
- Static Public Member Functions inherited from Task
static uiString stdNrDoneText ()
 
static uiString uiStdNrDoneText ()
 
- Static Public Member Functions inherited from CallBacker
static void createReceiverForCurrentThread ()
 
static void removeReceiverForCurrentThread ()
 

Protected Member Functions

 Array2DInterpol ()
 
bool doPrepare (int)
 
void excludeBigHoles (const bool *isdef, bool *shouldinterpol) const
 
void floodFillArrFrom (int seed, const bool *isdef, bool *shouldinterpol) const
 
void getNodesToFill (const bool *isdef, bool *shouldinterpol, TaskRunner *) const
 
bool isDefined (int idx) const
 
virtual void setFrom (od_int64 target, const od_int64 *sources, const float *weights, int nrsrc)
 
- Protected Member Functions inherited from ParallelTask
 ParallelTask (const char *nm=0)
 
 ParallelTask (const ParallelTask &)
 
void addToNrDone (int64_t increment)
 
int64_t calculateThreadSize (int64_t totalnr, int nrthreads, int thread) const
 
virtual int maxNrThreads () const
 
virtual int minThreadSize () const
 
virtual int64_t nrIterations () const =0
 
void quickAddToNrDone (int64_t loopidx)
 
void resetNrDone ()
 
virtual bool stopAllOnFailure () const
 
- Protected Member Functions inherited from Task
 Task (const char *nm=nullptr)
 
virtual bool shouldContinue ()
 
- Protected Member Functions inherited from NamedCallBacker
void sendDelNotif () const
 

Protected Attributes

Array2D< float > * arr_
 
ArrayAccessarrsetter_
 
float colstep_
 
bool croppoly_
 
FillType filltype_
 
bool isclassification_
 
const Array2D< bool > * mask_
 
bool maskismine_
 
float maxholesize_
 
int nrcells_
 
int nrcols_
 
int nrrows_
 
RowCol origin_
 
ODPolygon< double > * poly_
 
float rowstep_
 
Stats::CalcSetupstatsetup_
 
PolyTrendtrend_
 
- Protected Attributes inherited from Task
Control control_
 
Threads::ConditionVarworkcontrolcondvar_
 
- Protected Attributes inherited from NamedCallBacker
Threads::Atomic< bool > delalreadytriggered_
 
Notifier< NamedCallBackerdelnotif_
 
- Protected Attributes inherited from NamedObject
BufferString name_
 

Detailed Description

Base class for two dimensional array interpolators.

<>

Member Enumeration Documentation

◆ FillType

Enumerator
HolesOnly 
ConvexHull 
Full 
Polygon 

Constructor & Destructor Documentation

◆ ~Array2DInterpol()

virtual Array2DInterpol::~Array2DInterpol ( )
virtual

◆ Array2DInterpol()

Array2DInterpol::Array2DInterpol ( )
protected

Member Function Documentation

◆ canUseArrayAccess()

virtual bool Array2DInterpol::canUseArrayAccess ( ) const
inlinevirtual

◆ doPolygonCrop()

void Array2DInterpol::doPolygonCrop ( )

◆ doPrepare()

bool Array2DInterpol::doPrepare ( int  nrthreads)
protectedvirtual

Called once, before any doWork is called.

Reimplemented from ParallelTask.

Reimplemented in GMTArray2DInterpol, ContinuousCurvatureArray2DInterpol, TriangulationArray2DInterpol, and InverseDistanceArray2DInterpol.

◆ excludeBigHoles()

void Array2DInterpol::excludeBigHoles ( const bool *  isdef,
bool *  shouldinterpol 
) const
protected

Will find holes larger than maxholesize_ and exclude them from shouldinterpol.

◆ fillPar()

virtual bool Array2DInterpol::fillPar ( IOPar ) const
virtual

◆ floodFillArrFrom()

void Array2DInterpol::floodFillArrFrom ( int  seed,
const bool *  isdef,
bool *  shouldinterpol 
) const
protected

Floodfills 'false' into shouldinterpol from position seed. Floodfill will stop when bumping into defined values, as provided in isdef.

◆ getFillType()

FillType Array2DInterpol::getFillType ( ) const

◆ getMaxHoleSize()

float Array2DInterpol::getMaxHoleSize ( ) const

◆ getNodesToFill()

void Array2DInterpol::getNodesToFill ( const bool *  isdef,
bool *  shouldinterpol,
TaskRunner  
) const
protected

Fills shouldinterpol with true or false depending on if a certain node should be interpolated or not, based on filltype and maxholesize. If isdef is zero, the information will be extracted from the grid. Both isdef and shouldinterpol arrays refers to positions on the grid by row=idx/nrcols_,col=idxnrcols_

◆ infoMsg()

virtual uiString Array2DInterpol::infoMsg ( ) const
inlinevirtual

Reimplemented in GMTNearNeighborGrid, and GMTSurfaceGrid.

◆ isClassification()

bool Array2DInterpol::isClassification ( ) const

◆ isDefined()

bool Array2DInterpol::isDefined ( int  idx) const
protected

idx refers to positions on the grid by row=idx/nrcols_,col=idxnrcols_

◆ nothingToFill()

virtual bool Array2DInterpol::nothingToFill ( ) const
inlinevirtual

◆ setArray() [1/2]

virtual bool Array2DInterpol::setArray ( Array2D< float > &  ,
TaskRunner = 0 
)
virtual

◆ setArray() [2/2]

virtual bool Array2DInterpol::setArray ( ArrayAccess ,
TaskRunner = 0 
)
virtual

Set AFTER all settings.

Trend is active only when setTrendOrder is called

Reimplemented in ContinuousCurvatureArray2DInterpol, TriangulationArray2DInterpol, and InverseDistanceArray2DInterpol.

◆ setClassification()

void Array2DInterpol::setClassification ( bool  )

◆ setColStep()

void Array2DInterpol::setColStep ( float  r)

◆ setFillType()

void Array2DInterpol::setFillType ( FillType  )

◆ setFrom()

virtual void Array2DInterpol::setFrom ( od_int64  target,
const od_int64 *  sources,
const float *  weights,
int  nrsrc 
)
protectedvirtual

For convenience, inheriting obj may set arr_ directly.

Reimplemented in TriangulationHor3DGridder, and InvDistHor3DGridder.

◆ setMask()

void Array2DInterpol::setMask ( const Array2D< bool > *  ,
OD::PtrPolicy  = OD::UsePtr 
)

If mask is set, interpolation will only occur where mask has 'true' values. If array is larger than mask, values are assumed to be 'false' outside the mask. The mask works together with the filltype in an AND operations, so each position must get a 'true' value both from the filltype AND the mask. If no mask is given, the filltype will be used alone.

◆ setMaxHoleSize()

void Array2DInterpol::setMaxHoleSize ( float  )

◆ setOrigin()

void Array2DInterpol::setOrigin ( const RowCol )

◆ setRowStep()

void Array2DInterpol::setRowStep ( float  r)

◆ setSampling()

void Array2DInterpol::setSampling ( const TrcKeySampling )

Set both steps and the origin.

◆ setTrendOrder()

void Array2DInterpol::setTrendOrder ( PolyTrend::Order  ord)

◆ sKeyColStep()

static const char* Array2DInterpol::sKeyColStep ( )
static

◆ sKeyCropPolygon()

static const char* Array2DInterpol::sKeyCropPolygon ( )
static

◆ sKeyFillType()

static const char* Array2DInterpol::sKeyFillType ( )
static

◆ sKeyMaxHoleSz()

static const char* Array2DInterpol::sKeyMaxHoleSz ( )
static

◆ sKeyNrCells()

static const char* Array2DInterpol::sKeyNrCells ( )
static

◆ sKeyNrCols()

static const char* Array2DInterpol::sKeyNrCols ( )
static

◆ sKeyNrRows()

static const char* Array2DInterpol::sKeyNrRows ( )
static

◆ sKeyOrigin()

static const char* Array2DInterpol::sKeyOrigin ( )
static

◆ sKeyPolyNode()

static const char* Array2DInterpol::sKeyPolyNode ( )
static

◆ sKeyPolyNrofNodes()

static const char* Array2DInterpol::sKeyPolyNrofNodes ( )
static

◆ sKeyRowStep()

static const char* Array2DInterpol::sKeyRowStep ( )
static

◆ trimArray()

bool Array2DInterpol::trimArray ( int  step,
Array2D< char > &  edgesmask 
)

◆ uiMessage()

uiString Array2DInterpol::uiMessage ( ) const
inlinevirtual

will be message() again in 7.x

Reimplemented from Task.

Reimplemented in GMTArray2DInterpol.

◆ usePar()

virtual bool Array2DInterpol::usePar ( const IOPar )
virtual

Member Data Documentation

◆ arr_

Array2D<float>* Array2DInterpol::arr_
protected

◆ arrsetter_

ArrayAccess* Array2DInterpol::arrsetter_
protected

◆ colstep_

float Array2DInterpol::colstep_
protected

◆ croppoly_

bool Array2DInterpol::croppoly_
protected

◆ filltype_

FillType Array2DInterpol::filltype_
protected

◆ isclassification_

bool Array2DInterpol::isclassification_
protected

◆ mask_

const Array2D<bool>* Array2DInterpol::mask_
protected

◆ maskismine_

bool Array2DInterpol::maskismine_
protected

◆ maxholesize_

float Array2DInterpol::maxholesize_
protected

◆ nrcells_

int Array2DInterpol::nrcells_
protected

◆ nrcols_

int Array2DInterpol::nrcols_
protected

◆ nrrows_

int Array2DInterpol::nrrows_
protected

◆ origin_

RowCol Array2DInterpol::origin_
protected

◆ poly_

ODPolygon<double>* Array2DInterpol::poly_
protected

◆ rowstep_

float Array2DInterpol::rowstep_
protected

◆ statsetup_

Stats::CalcSetup* Array2DInterpol::statsetup_
protected

◆ trend_

PolyTrend* Array2DInterpol::trend_
protected

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