30 #ifndef ATBBOUNDARYTREATMENT_HH 31 #define ATBBOUNDARYTREATMENT_HH 37 #include <blitz/array.h> 83 template<
typename DataT,
int Dim >
168 virtual DataT
get(blitz::Array<DataT,Dim>
const &data,
169 blitz::TinyVector<ptrdiff_t,Dim> pos)
const = 0;
189 virtual blitz::TinyVector<ptrdiff_t,Dim>
getIndex(
190 blitz::TinyVector<ptrdiff_t,Dim> pos,
191 blitz::TinyVector<ptrdiff_t,Dim>
const &shape)
const = 0;
207 DataT
const *data, ptrdiff_t pos, ptrdiff_t length)
const = 0;
227 virtual ptrdiff_t
getIndex(ptrdiff_t pos, ptrdiff_t length)
const = 0;
238 template<
typename DataT,
int Dim >
324 DataT
get(blitz::Array<DataT,Dim>
const &data,
325 blitz::TinyVector<ptrdiff_t,Dim> pos)
const;
343 blitz::TinyVector<ptrdiff_t,Dim>
getIndex(
344 blitz::TinyVector<ptrdiff_t,Dim> pos,
345 blitz::TinyVector<ptrdiff_t,Dim>
const &shape)
const;
360 DataT
get(DataT
const *data, ptrdiff_t pos, ptrdiff_t length)
const;
380 ptrdiff_t
getIndex(ptrdiff_t pos, ptrdiff_t length)
const;
390 DataT
const &boundaryValue()
const;
400 void setBoundaryValue(DataT
const &boundaryValue);
415 template<
typename DataT,
int Dim >
499 DataT
get(blitz::Array<DataT,Dim>
const &data,
500 blitz::TinyVector<ptrdiff_t,Dim> pos)
const;
513 blitz::TinyVector<ptrdiff_t,Dim>
getIndex(
514 blitz::TinyVector<ptrdiff_t,Dim> pos,
515 blitz::TinyVector<ptrdiff_t,Dim>
const &shape)
const;
531 DataT
const *data, ptrdiff_t pos, ptrdiff_t length)
const;
551 ptrdiff_t
getIndex(ptrdiff_t pos, ptrdiff_t length)
const;
562 template<
typename DataT,
int Dim >
646 DataT
get(blitz::Array<DataT,Dim>
const &data,
647 blitz::TinyVector<ptrdiff_t,Dim> pos)
const;
660 blitz::TinyVector<ptrdiff_t,Dim>
getIndex(
661 blitz::TinyVector<ptrdiff_t,Dim> pos,
662 blitz::TinyVector<ptrdiff_t,Dim>
const &shape)
const;
678 DataT
const *data, ptrdiff_t pos, ptrdiff_t length)
const;
698 ptrdiff_t
getIndex(ptrdiff_t pos, ptrdiff_t length)
const;
709 template<
typename DataT,
int Dim >
793 DataT
get(blitz::Array<DataT,Dim>
const &data,
794 blitz::TinyVector<ptrdiff_t,Dim> pos)
const;
807 blitz::TinyVector<ptrdiff_t,Dim>
getIndex(
808 blitz::TinyVector<ptrdiff_t,Dim> pos,
809 blitz::TinyVector<ptrdiff_t,Dim>
const &shape)
const;
825 DataT
const *data, ptrdiff_t pos, ptrdiff_t length)
const;
845 ptrdiff_t
getIndex(ptrdiff_t pos, ptrdiff_t length)
const;
858 template<
typename DataT,
int Dim >
944 DataT
get(blitz::Array<DataT,Dim>
const &data,
945 blitz::TinyVector<ptrdiff_t,Dim> pos)
const;
961 blitz::TinyVector<ptrdiff_t,Dim>
getIndex(
962 blitz::TinyVector<ptrdiff_t,Dim> pos,
963 blitz::TinyVector<ptrdiff_t,Dim>
const &shape)
const;
979 DataT
const *data, ptrdiff_t pos, ptrdiff_t length)
const;
999 ptrdiff_t
getIndex(ptrdiff_t pos, ptrdiff_t length)
const;
1011 template<
typename DataT,
int Dim>
1042 #include "BoundaryTreatment.icc" virtual ~BoundaryTreatment()
Destructor.
The BoundaryTreatmentFactory class contains a factory method for creating a BoundaryTreatment object ...
Exception specialization for error handling within libArrayToolbox.
BoundaryTreatmentType
BoundaryTreatment.hh "libArrayToolbox/BoundaryTreatment.hh".
virtual BoundaryTreatment< DataT, Dim > * clone() const =0
Get a deep copy of this BoundaryTreatment object.
The traits class provides means to query specific information about different data types...
The MirrorBoundaryTreatment class implements mirroring border treatment when accessing Arrays...
Query specific information about different data types.
The CyclicBoundaryTreatment class implements cyclic border treatment when accessing Arrays...
Treat values beyond the Array as if the Array continues cyclically at the boundaries.
The RepeatBoundaryTreatment class implements repeating border treatment when accessing Arrays...
Mirror out-of-Array coordinates at the Array boundaries to get in-Array indices and values...
Treat positions beyond the Array domain as having a constant value.
BoundaryTreatment()
Constructor.
Don't use out-of-bounds pixels at all.
Always pick the closest in-Array position to the position passed.
The BoundaryTreatment class provides the interface to all specific BoundaryTreatment subclasses...
The ValueBoundaryTreatment class implements constant value border treatment when accessing Arrays...
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.
The CropBoundaryTreatment class has actually no function.
virtual bool providesIndices() const =0
The returned boolean indicates, whether the boundary treatment is able to transform the incoming coor...
virtual BoundaryTreatmentType type() const =0
Get the corresponding enumeration value for the boundary treatment type.
BoundaryTreatment< DataT, Dim > & operator=(BoundaryTreatment< DataT, Dim > const &bt)
Copy assignment operator.