iRoCS Toolbox  1.1.0
Public Member Functions
atb::BoundaryTreatment< DataT, Dim > Class Template Referenceabstract

The BoundaryTreatment class provides the interface to all specific BoundaryTreatment subclasses. More...

#include "libArrayToolbox/BoundaryTreatment.hh"

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

Public Member Functions

 BoundaryTreatment ()
 Constructor. More...
 
 BoundaryTreatment (BoundaryTreatment< DataT, Dim > const &bt)
 Copy Constructor. More...
 
virtual ~BoundaryTreatment ()
 Destructor. More...
 
virtual BoundaryTreatment< DataT, Dim > * clone () const =0
 Get a deep copy of this BoundaryTreatment object. More...
 
virtual DataT get (blitz::Array< DataT, Dim > const &data, blitz::TinyVector< ptrdiff_t, Dim > pos) const =0
 Get the Array value at the given position. More...
 
virtual DataT get (DataT const *data, ptrdiff_t pos, ptrdiff_t length) const =0
 Get the C-array value at the given position. More...
 
virtual blitz::TinyVector< ptrdiff_t, Dim > getIndex (blitz::TinyVector< ptrdiff_t, Dim > pos, blitz::TinyVector< ptrdiff_t, Dim > const &shape) const =0
 Get the in-Array-Index to the given position. More...
 
virtual ptrdiff_t getIndex (ptrdiff_t pos, ptrdiff_t length) const =0
 Get the in-array-index to the given position. More...
 
BoundaryTreatment< DataT, Dim > & operator= (BoundaryTreatment< DataT, Dim > const &bt)
 Copy assignment operator. More...
 
virtual bool providesIndices () const =0
 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...
 
virtual BoundaryTreatmentType type () const =0
 Get the corresponding enumeration value for the boundary treatment type. More...
 

Detailed Description

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

The BoundaryTreatment class provides the interface to all specific BoundaryTreatment subclasses.

Definition at line 84 of file BoundaryTreatment.hh.

Constructor & Destructor Documentation

◆ BoundaryTreatment() [1/2]

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

Constructor.

◆ BoundaryTreatment() [2/2]

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

Copy Constructor.

Parameters
btThe BoundaryTreatment object to copy

◆ ~BoundaryTreatment()

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

Destructor.

Member Function Documentation

◆ operator=()

template<typename DataT, int Dim>
BoundaryTreatment<DataT,Dim>& atb::BoundaryTreatment< DataT, Dim >::operator= ( BoundaryTreatment< 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>
virtual BoundaryTreatment<DataT,Dim>* atb::BoundaryTreatment< DataT, Dim >::clone ( ) const
pure virtual

◆ type()

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

Get the corresponding enumeration value for the boundary treatment type.

Returns
The enumeration value corresponding to the boundary treatment

Implemented in atb::CropBoundaryTreatment< DataT, Dim >, atb::MirrorBoundaryTreatment< DataT, Dim >, atb::RepeatBoundaryTreatment< DataT, Dim >, atb::CyclicBoundaryTreatment< DataT, Dim >, and atb::ValueBoundaryTreatment< DataT, Dim >.

◆ providesIndices()

template<typename DataT, int Dim>
virtual bool atb::BoundaryTreatment< DataT, Dim >::providesIndices ( ) const
pure 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
true if the BoundaryTreatment can transform out-of-bounds indices into in-Array-indices, false otherwise

Implemented in atb::CropBoundaryTreatment< DataT, Dim >, atb::MirrorBoundaryTreatment< DataT, Dim >, atb::RepeatBoundaryTreatment< DataT, Dim >, atb::CyclicBoundaryTreatment< DataT, Dim >, and atb::ValueBoundaryTreatment< DataT, Dim >.

◆ get() [1/2]

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

Get the Array value at the given position.

For out-of-Array coordinates the corresponding treatment will be applied

Parameters
dataThe Array to read a value from
posThe position to read
Returns
The Array value at the specified position after boundary treatment

Implemented in atb::CropBoundaryTreatment< DataT, Dim >, atb::MirrorBoundaryTreatment< DataT, Dim >, atb::RepeatBoundaryTreatment< DataT, Dim >, atb::CyclicBoundaryTreatment< DataT, Dim >, and atb::ValueBoundaryTreatment< DataT, Dim >.

◆ getIndex() [1/2]

template<typename DataT, int Dim>
virtual blitz::TinyVector<ptrdiff_t,Dim> atb::BoundaryTreatment< DataT, Dim >::getIndex ( blitz::TinyVector< ptrdiff_t, Dim >  pos,
blitz::TinyVector< ptrdiff_t, Dim > const &  shape 
) const
pure 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
shapeThe Array shape
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.

Implemented in atb::CropBoundaryTreatment< DataT, Dim >, atb::MirrorBoundaryTreatment< DataT, Dim >, atb::RepeatBoundaryTreatment< DataT, Dim >, atb::CyclicBoundaryTreatment< DataT, Dim >, and atb::ValueBoundaryTreatment< DataT, Dim >.

◆ get() [2/2]

template<typename DataT, int Dim>
virtual DataT atb::BoundaryTreatment< DataT, Dim >::get ( DataT const *  data,
ptrdiff_t  pos,
ptrdiff_t  length 
) const
pure 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

Implemented in atb::CropBoundaryTreatment< DataT, Dim >, atb::MirrorBoundaryTreatment< DataT, Dim >, atb::RepeatBoundaryTreatment< DataT, Dim >, atb::CyclicBoundaryTreatment< DataT, Dim >, and atb::ValueBoundaryTreatment< DataT, Dim >.

◆ getIndex() [2/2]

template<typename DataT, int Dim>
virtual ptrdiff_t atb::BoundaryTreatment< DataT, Dim >::getIndex ( ptrdiff_t  pos,
ptrdiff_t  length 
) const
pure 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.

Implemented in atb::CropBoundaryTreatment< DataT, Dim >, atb::MirrorBoundaryTreatment< DataT, Dim >, atb::RepeatBoundaryTreatment< DataT, Dim >, atb::CyclicBoundaryTreatment< DataT, Dim >, and atb::ValueBoundaryTreatment< DataT, Dim >.


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