Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes

Array2DInterpol Class Reference

Inheritance diagram for Array2DInterpol:
ParallelTask Task NamedObject CallBacker Array2DInterpolExtension InverseDistanceArray2DInterpol TriangulationArray2DInterpol

List of all members.

Classes

class  ArrayAccess

Public Types

enum  FillType { HolesOnly, ConvexHull, Full }

Public Member Functions

virtual ~Array2DInterpol ()
 mDefineFactoryInClass (Array2DInterpol, factory)
 DeclareEnumUtils (FillType)
void setFillType (FillType)
FillType getFillType () const
void setRowStep (float r)
void setColStep (float r)
void setMaxHoleSize (float)
float getMaxHoleSize () const
void setClassification (bool)
bool isClassification () const
void setMask (const Array2D< bool > *, OD::PtrPolicy=OD::UsePtr)
virtual const char * infoMsg () const
virtual bool nothingToFill () const
virtual bool setArray (Array2D< float > &, TaskRunner *=0)
 Set AFTER all settings.
virtual bool canUseArrayAccess () const
virtual bool setArray (ArrayAccess &, TaskRunner *=0)
 Set AFTER all settings.

Protected Member Functions

 Array2DInterpol ()
bool doPrepare (int)
void getNodesToFill (const bool *isdef, bool *shouldinterpol, TaskRunner *) const
bool isDefined (int idx) const
void setFrom (int target, const int *sources, const float *weights, int nrsrc)
void floodFillArrFrom (int seed, const bool *isdef, bool *shouldinterpol) const
void excludeBigHoles (const bool *isdef, bool *shouldinterpol) const

Protected Attributes

Array2D< float > * arr_
ArrayAccessarrsetter_
float rowstep_
float colstep_
int nrrows_
int nrcols_
int nrcells_
FillType filltype_
float maxholesize_
const Array2D< bool > * mask_
bool maskismine_
bool isclassification_
Stats::RunCalcSetupstatsetup_

Member Enumeration Documentation

Enumerator:
HolesOnly 
ConvexHull 
Full 

Constructor & Destructor Documentation

virtual Array2DInterpol::~Array2DInterpol (  )  [virtual]
Array2DInterpol::Array2DInterpol (  )  [protected]

Member Function Documentation

virtual bool Array2DInterpol::canUseArrayAccess (  )  const [inline, virtual]
Array2DInterpol::DeclareEnumUtils ( FillType   ) 
bool Array2DInterpol::doPrepare ( int   )  [protected, virtual]

Reimplemented from ParallelTask.

Reimplemented in InverseDistanceArray2DInterpol, and TriangulationArray2DInterpol.

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

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

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.

FillType Array2DInterpol::getFillType (  )  const
float Array2DInterpol::getMaxHoleSize (  )  const
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_

virtual const char* Array2DInterpol::infoMsg (  )  const [inline, virtual]
bool Array2DInterpol::isClassification (  )  const
bool Array2DInterpol::isDefined ( int  idx  )  const [protected]

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

Array2DInterpol::mDefineFactoryInClass ( Array2DInterpol  ,
factory   
)
virtual bool Array2DInterpol::nothingToFill (  )  const [inline, virtual]
virtual bool Array2DInterpol::setArray ( ArrayAccess ,
TaskRunner = 0 
) [virtual]

Set AFTER all settings.

Reimplemented in InverseDistanceArray2DInterpol, and TriangulationArray2DInterpol.

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

Set AFTER all settings.

Reimplemented in InverseDistanceArray2DInterpol, and TriangulationArray2DInterpol.

void Array2DInterpol::setClassification ( bool   ) 
void Array2DInterpol::setColStep ( float  r  ) 
void Array2DInterpol::setFillType ( FillType   ) 
void Array2DInterpol::setFrom ( int  target,
const int *  sources,
const float *  weights,
int  nrsrc 
) [protected]

For convenience, inheriting obj may set arr_ directly.

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.

void Array2DInterpol::setMaxHoleSize ( float   ) 
void Array2DInterpol::setRowStep ( float  r  ) 

Member Data Documentation

Array2D<float>* Array2DInterpol::arr_ [protected]
float Array2DInterpol::colstep_ [protected]
const Array2D<bool>* Array2DInterpol::mask_ [protected]
bool Array2DInterpol::maskismine_ [protected]
float Array2DInterpol::maxholesize_ [protected]
int Array2DInterpol::nrcells_ [protected]
int Array2DInterpol::nrcols_ [protected]
int Array2DInterpol::nrrows_ [protected]
float Array2DInterpol::rowstep_ [protected]