27 #ifndef LSST_AFW_GEOM_SPANSETFUNCTORGETTERS_H 
   28 #define LSST_AFW_GEOM_SPANSETFUNCTORGETTERS_H 
   30 #include <type_traits> 
   54 template <
typename T, 
typename... Args>
 
   62     x.checkExtents(box, area);
 
   65 template <
typename T, 
typename... Args>
 
   76 template <
typename T, 
typename... Args>
 
  126 template <
typename T>
 
  148     T get()
 const { 
return _const; }
 
  154 template <
typename T, 
int N, 
int C>
 
  158     using Reference = 
typename ndarray::Array<T, N, C>::Reference::Reference;
 
  161             : _array(array), _xy0(xy0) {}
 
  175                               "SpanSet bounding box lands outside array");
 
  180         auto _iterY = _array.begin() + (span.
getY() - _xy0.getY());
 
  181         _iterX = (*_iterY).begin() + (span.
getMinX() - _xy0.getX());
 
  189     ndarray::Array<T, N, C> _array;
 
  194 template <
typename T, 
int inA, 
int inC>
 
  198     using Reference = 
typename ndarray::Array<T, inA, inC>::Reference;
 
  200     explicit FlatNdGetter(ndarray::Array<T, inA, inC> 
const& array) : _array(array), _iter(_array.begin()) {}
 
  211         auto shape = _array.getShape();
 
  212         if (area > 
static_cast<int>(shape[0])) {
 
  214                               "SpanSet has dimensionality greater than array");
 
  225     ndarray::Array<T, inA, inC> _array;
 
  238 template <
typename T, 
int inA, 
int inC>
 
  244 template <
typename T, 
int inA, 
int inB>
 
  250 template <
typename T>
 
  256 template <
typename T>
 
  262 template <
typename T>
 
  268 template <
typename T>
 
  274 template <
typename T>
 
  285 template <
typename T, 
typename = 
void>
 
  288 template <
typename T>
 
  290                               !std::is_same<typename std::iterator_traits<T>::value_type, void>::value>
::type>
 
  293 template <
typename T>
 
  308 template <
typename T, 
int inA, 
int inB>
 
  332 template <
typename T, 
int inA, 
int inB>
 
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
 
A range of pixels within one row of an Image.
 
int getMinX() const noexcept
Minimum x-value.
 
int getY() const noexcept
Return the y-value.
 
~ConstantGetter()=default
 
ConstantGetter & operator=(ConstantGetter const &)=default
 
ConstantGetter(ConstantGetter &&)=default
 
ConstantGetter(T constant)
 
ConstantGetter(ConstantGetter const &)=default
 
void setSpan(Span const &span)
 
void checkExtents(lsst::geom::Box2I const &bbox, int area) const
 
ConstantGetter & operator=(ConstantGetter &&)=default
 
FlatNdGetter & operator=(FlatNdGetter const &)=default
 
FlatNdGetter(FlatNdGetter &&)=default
 
typename ndarray::Array< T, inA, inC >::Reference Reference
 
FlatNdGetter(FlatNdGetter const &)=default
 
FlatNdGetter & operator=(FlatNdGetter &&)=default
 
void checkExtents(lsst::geom::Box2I const &bbox, int area) const
 
void setSpan(Span const &span)
 
FlatNdGetter(ndarray::Array< T, inA, inC > const &array)
 
void setSpan(Span const &span)
 
void checkExtents(lsst::geom::Box2I const &bbox, int area) const
 
ImageNdGetter(ImageNdGetter const &)=default
 
ImageNdGetter & operator=(ImageNdGetter &&)=default
 
ImageNdGetter(ndarray::Array< T, N, C > const &array, lsst::geom::Point2I const &xy0)
 
typename ndarray::Array< T, N, C >::Reference::Reference Reference
 
ImageNdGetter(ImageNdGetter &&)=default
 
ImageNdGetter & operator=(ImageNdGetter const &)=default
 
void checkExtents(lsst::geom::Box2I const &bbox, int area) const
 
std::iterator_traits< T >::reference get() const
 
void setSpan(Span const &span)
 
IterGetter & operator=(IterGetter &&)=default
 
IterGetter(IterGetter &&)=default
 
IterGetter(IterGetter const &)=default
 
IterGetter & operator=(IterGetter const &)=default
 
typename std::iterator_traits< T >::value_type type
 
A class to represent a 2-dimensional array of pixels.
 
Represent a 2-dimensional array of bitmask pixels.
 
An integer coordinate rectangle.
 
bool contains(Point2I const &point) const noexcept
Return true if the box contains the point.
 
Reports attempts to access elements outside a valid range of indices.
 
void variadicSpanSetter(Span const spn, T &x)
 
FlatNdGetter< T, inA, inC > makeGetter(FlatNdGetter< T, inA, inC > &getter)
 
void variadicIncrementPosition(T &x)
 
void variadicBoundChecker(lsst::geom::Box2I const box, int area, T const &x)
 
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects.
 
class[[deprecated("Removed with no replacement (but see lsst::afw::image::TransmissionCurve). Will be " "removed after v22.")]] FilterProperty final
Describe the properties of a Filter (e.g.
 
FastFinder::Iterator Iterator
 
A base class for image defects.
 
details::FlatNdGetter< T, inA, inB > ndFlat(ndarray::Array< T, inA, inB > const &array)
Marks a ndarray to be interpreted as a 1D vector when applying a functor from a SpanSet.
 
details::ImageNdGetter< T, inA, inB > ndImage(ndarray::Array< T, inA, inB > const &array, lsst::geom::Point2I xy0=lsst::geom::Point2I())
Marks a ndarray to be interpreted as an image when applying a functor from a SpanSet.