iRoCS Toolbox  1.1.0
Public Member Functions
atb::ValueBoundaryTreatment< DataT, Dim > Class Template Reference

The ValueBoundaryTreatment class implements constant value border treatment when accessing Arrays. More...

#include "libArrayToolbox/BoundaryTreatment.hh"

Inheritance diagram for atb::ValueBoundaryTreatment< DataT, Dim >:
Collaboration diagram for atb::ValueBoundaryTreatment< DataT, Dim >:

Public Member Functions

 ValueBoundaryTreatment (DataT const &value=traits< DataT >::zero)
 Constructor. More...
 
 ValueBoundaryTreatment (ValueBoundaryTreatment< DataT, Dim > const &bt)
 Copy Constructor. More...
 
 ~ValueBoundaryTreatment ()
 Destructor. More...
 
DataT const & boundaryValue () const
 Get the value, that is returned when out-of-Array positions are requested. More...
 
BoundaryTreatment< DataT, Dim > * clone () const
 Get a deep copy of this BoundaryTreatment object. More...
 
DataT get (blitz::Array< DataT, Dim > const &data, blitz::TinyVector< ptrdiff_t, Dim > pos) const
 Get the Array value at the given position. More...
 
DataT get (DataT const *data, ptrdiff_t pos, ptrdiff_t length) const
 Get the C-array value at the given position. More...
 
blitz::TinyVector< ptrdiff_t, Dim > getIndex (blitz::TinyVector< ptrdiff_t, Dim > pos, blitz::TinyVector< ptrdiff_t, Dim > const &shape) const
 Get the in-Array-Index to the given position. More...
 
ptrdiff_t getIndex (ptrdiff_t pos, ptrdiff_t length) const
 Get the in-array-index to the given position. More...
 
ValueBoundaryTreatment< DataT, Dim > & operator= (ValueBoundaryTreatment< DataT, Dim > const &bt)
 Copy assignment operator. More...
 
bool providesIndices () const
 The returned boolean indicates, whether the boundary treatment is able to transform the incoming coordinates into valid Array coordinates and therefore it indicates, whether the function getIndex() returns valid in-Array-positions. More...
 
void setBoundaryValue (DataT const &boundaryValue)
 Set the value, that is returned when out-of-Array positions are requested. More...
 
BoundaryTreatmentType type () const
 Get the corresponding enumeration value for the boundary treatment type. More...
 

Detailed Description

template<typename DataT, int Dim>
class atb::ValueBoundaryTreatment< DataT, Dim >

The ValueBoundaryTreatment class implements constant value border treatment when accessing Arrays.

The default constant is zero.

Definition at line 239 of file BoundaryTreatment.hh.

Constructor & Destructor Documentation

◆ ValueBoundaryTreatment() [1/2]

template<typename DataT, int Dim>
atb::ValueBoundaryTreatment< DataT, Dim >::ValueBoundaryTreatment ( DataT const &  value = traits< DataT >::zero)

Constructor.

Parameters
valueThe value to assume for out-of-array pixels

◆ ValueBoundaryTreatment() [2/2]

template<typename DataT, int Dim>
atb::ValueBoundaryTreatment< DataT, Dim >::ValueBoundaryTreatment ( ValueBoundaryTreatment< DataT, Dim > const &  bt)

Copy Constructor.

Parameters
btThe BoundaryTreatment object to copy

◆ ~ValueBoundaryTreatment()

template<typename DataT, int Dim>
atb::ValueBoundaryTreatment< DataT, Dim >::~ValueBoundaryTreatment ( )

Destructor.

Member Function Documentation

◆ operator=()

template<typename DataT, int Dim>
ValueBoundaryTreatment<DataT,Dim>& atb::ValueBoundaryTreatment< DataT, Dim >::operator= ( ValueBoundaryTreatment< DataT, Dim > const &  bt)

Copy assignment operator.

Parameters
btThe BoundaryTreatment object to copy
Returns
A reference to this BoundaryTreatment object for operator chaining

◆ clone()

template<typename DataT, int Dim>
BoundaryTreatment<DataT,Dim>* atb::ValueBoundaryTreatment< DataT, Dim >::clone ( ) const
virtual

Get a deep copy of this BoundaryTreatment object.

Returns
A deep copy of this BoundaryTreatment object

Implements atb::BoundaryTreatment< DataT, Dim >.

◆ type()

template<typename DataT, int Dim>
BoundaryTreatmentType atb::ValueBoundaryTreatment< DataT, Dim >::type ( ) const
virtual

Get the corresponding enumeration value for the boundary treatment type.

Returns
ValueBT

Implements atb::BoundaryTreatment< DataT, Dim >.

◆ providesIndices()

template<typename DataT, int Dim>
bool atb::ValueBoundaryTreatment< DataT, Dim >::providesIndices ( ) const
virtual

The returned boolean indicates, whether the boundary treatment is able to transform the incoming coordinates into valid Array coordinates and therefore it indicates, whether the function getIndex() returns valid in-Array-positions.

Returns
false

Implements atb::BoundaryTreatment< DataT, Dim >.

◆ get() [1/2]

template<typename DataT, int Dim>
DataT atb::ValueBoundaryTreatment< DataT, Dim >::get ( blitz::Array< DataT, Dim > const &  data,
blitz::TinyVector< ptrdiff_t, Dim >  pos 
) const
virtual

Get the Array value at the given position.

For out-of-bounds positions the provided constant value will be returned

Parameters
dataThe Array to read a value from
posThe position to read
Returns
The Array value at the specified position or the constant if the position is out-of-bounds

Implements atb::BoundaryTreatment< DataT, Dim >.

◆ getIndex() [1/2]

template<typename DataT, int Dim>
blitz::TinyVector<ptrdiff_t,Dim> atb::ValueBoundaryTreatment< DataT, Dim >::getIndex ( blitz::TinyVector< ptrdiff_t, Dim >  pos,
blitz::TinyVector< ptrdiff_t, Dim > const &  shape 
) const
virtual

Get the in-Array-Index to the given position.

For the ValueBoundaryTreatment class this function just returns the given in-Array-position or throws an RuntimeError if an out-of-Array position is passed.

Parameters
posThe position to transform to in-Array-coordinates
shapeThe Array shape
Returns
The position that was passed to the function
Exceptions
RuntimeErrorThis exception is thrown if an out-of-Array position is passed.

Implements atb::BoundaryTreatment< DataT, Dim >.

◆ get() [2/2]

template<typename DataT, int Dim>
DataT atb::ValueBoundaryTreatment< DataT, Dim >::get ( DataT const *  data,
ptrdiff_t  pos,
ptrdiff_t  length 
) const
virtual

Get the C-array value at the given position.

For out-of-array positions the corresponding treatment will be applied

Parameters
dataThe C-array to read a value from
posThe position to read
lengthThe array length
Returns
The array value at the specified position after boundary treatment

Implements atb::BoundaryTreatment< DataT, Dim >.

◆ getIndex() [2/2]

template<typename DataT, int Dim>
ptrdiff_t atb::ValueBoundaryTreatment< DataT, Dim >::getIndex ( ptrdiff_t  pos,
ptrdiff_t  length 
) const
virtual

Get the in-array-index to the given position.

This function throws a RuntimeError if the BoundaryTreatment cannot return valid out-of-array indices. This can be checked using the providesIndices flag

Parameters
posThe position to transform to in-Array-coordinates
lengthThe array length
Returns
The in-Array position corresponding to the position that was passed to the function according to the used boundary treatment
Exceptions
RuntimeErrorThis exception is thrown if the BoundaryTreatment cannot generate in-Array positions from given out-of-Array positions, and an out-of-Array position is passed.

Implements atb::BoundaryTreatment< DataT, Dim >.

◆ boundaryValue()

template<typename DataT, int Dim>
DataT const& atb::ValueBoundaryTreatment< DataT, Dim >::boundaryValue ( ) const

Get the value, that is returned when out-of-Array positions are requested.

Returns
The out-of-Array value

◆ setBoundaryValue()

template<typename DataT, int Dim>
void atb::ValueBoundaryTreatment< DataT, Dim >::setBoundaryValue ( DataT const &  boundaryValue)

Set the value, that is returned when out-of-Array positions are requested.

Parameters
boundaryValueThe new out-of-Array value

The documentation for this class was generated from the following file: