39 template <
typename DestImageT, 
typename SrcImageT>
 
   43                    typename DestImageT::SinglePixel padValue)
 
   44             : _srcImage(srcImage),
 
   45               _kernelPtr(control.getWarpingKernel()),
 
   46               _maskKernelPtr(control.getMaskWarpingKernel()),
 
   47               _hasMaskKernel(control.getMaskWarpingKernel()),
 
   48               _kernelCtr(_kernelPtr->getCtr()),
 
   49               _maskKernelCtr(_maskKernelPtr ? _maskKernelPtr->getCtr() : 
lsst::
geom::
Point2I(0, 0)),
 
   50               _growFullMask(control.getGrowFullMask()),
 
   51               _xList(_kernelPtr->getWidth()),
 
   52               _yList(_kernelPtr->getHeight()),
 
   53               _maskXList(_maskKernelPtr ? _maskKernelPtr->getWidth() : 0),
 
   54               _maskYList(_maskKernelPtr ? _maskKernelPtr->getHeight() : 0),
 
   56               _srcGoodBBox(_kernelPtr->shrinkBBox(srcImage.getBBox(
lsst::
afw::
image::
LOCAL))){};
 
   69         if (srcIndFracX.second < 0) {
 
   73         if (srcIndFracY.second < 0) {
 
   81             int srcStartX = srcIndFracX.first - _kernelCtr[0];
 
   82             int srcStartY = srcIndFracY.first - _kernelCtr[1];
 
   85             double kSum = _setFracIndex(srcIndFracX.second, srcIndFracY.second);
 
   87             typename SrcImageT::const_xy_locator srcLoc = _srcImage.xy_at(srcStartX, srcStartY);
 
   89             *destXIter = lsst::afw::math::convolveAtAPoint<DestImageT, SrcImageT>(srcLoc, _xList, _yList);
 
   90             *destXIter *= relativeArea / kSum;
 
   94             *destXIter = _padValue;
 
  111         if (srcIndFracX.second < 0) {
 
  112             ++srcIndFracX.second;
 
  115         if (srcIndFracY.second < 0) {
 
  116             ++srcIndFracY.second;
 
  123             int srcStartX = srcIndFracX.first - _kernelCtr[0];
 
  124             int srcStartY = srcIndFracY.first - _kernelCtr[1];
 
  127             double kSum = _setFracIndex(srcIndFracX.second, srcIndFracY.second);
 
  129             typename SrcImageT::const_xy_locator srcLoc = _srcImage.xy_at(srcStartX, srcStartY);
 
  131             *destXIter = lsst::afw::math::convolveAtAPoint<DestImageT, SrcImageT>(srcLoc, _xList, _yList);
 
  132             *destXIter *= relativeArea / kSum;
 
  134             if (_hasMaskKernel) {
 
  136                 int maskStartX = srcIndFracX.first - _maskKernelCtr[0];
 
  137                 int maskStartY = srcIndFracY.first - _maskKernelCtr[1];
 
  139                 typename SrcImageT::Mask::const_xy_locator srcMaskLoc =
 
  140                         _srcImage.getMask()->xy_at(maskStartX, maskStartY);
 
  144                 typename DestImageT::Mask::SinglePixel destMaskValue = 0;
 
  145                 for (
double kValY : _maskYList) {
 
  146                     typename DestImageT::Mask::SinglePixel destMaskValueY = 0;
 
  147                     for (k_iter kernelXIter = _maskXList.
begin(), xEnd = _maskXList.
end();
 
  148                          kernelXIter != xEnd; ++kernelXIter, ++srcMaskLoc.x()) {
 
  151                             destMaskValueY |= *srcMaskLoc;
 
  156                         destMaskValue |= destMaskValueY;
 
  159                     srcMaskLoc += lsst::afw::image::detail::difference_type(-_maskXList.
size(), 1);
 
  162                 destXIter.mask() = (destXIter.mask() & _growFullMask) | destMaskValue;
 
  167             *destXIter = _padValue;
 
  178     double _setFracIndex(
double xFrac, 
double yFrac) {
 
  182         if (_maskKernelPtr) {
 
  200     typename DestImageT::SinglePixel _padValue;
 
void setKernelParameters(std::vector< double > const ¶ms)
Set the kernel parameters of a spatially invariant kernel.
 
double computeVectors(std::vector< Pixel > &colList, std::vector< Pixel > &rowList, bool doNormalize, double x=0.0, double y=0.0) const
Compute the column and row arrays in place, where kernel(col, row) = colList(col) * rowList(row)
 
Parameters to control convolution.
 
A functor that computes one warped pixel.
 
bool operator()(typename DestImageT::x_iterator &destXIter, lsst::geom::Point2D const &srcPos, double relativeArea, lsst::afw::image::detail::Image_tag)
Compute one warped pixel, Image specialization.
 
bool operator()(typename DestImageT::x_iterator &destXIter, lsst::geom::Point2D const &srcPos, double relativeArea, lsst::afw::image::detail::MaskedImage_tag)
Compute one warped pixel, MaskedImage specialization.
 
WarpAtOnePoint(SrcImageT const &srcImage, WarpingControl const &control, typename DestImageT::SinglePixel padValue)
 
An integer coordinate rectangle.
 
bool contains(Point2I const &point) const noexcept
Return true if the box contains the point.
 
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.
 
A base class for image defects.
 
A traits class for MaskedImage.