23 #ifndef _SEFRAMEWORK_IMAGE_PADDEDIMAGE_H
24 #define _SEFRAMEWORK_IMAGE_PADDEDIMAGE_H
28 namespace SourceXtractor {
32 if (v > N - 1)
return N - 1;
37 if (v >= 0 && v < N) {
47 if (ntimes % 2 == 0) {
50 return N - offset - 1;
54 if (v >= 0 && v < N) {
63 if (ntimes % 2 == 0) {
70 return (v % N + N) % N;
73 template<
typename T,
int CoordinateInterpolation(
int,
int) =
nullptr>
78 auto wdiff =
m_width - img->getWidth();
79 auto hdiff =
m_height - img->getHeight();
86 template<
typename... Args>
92 return "PaddedImage(" +
m_img->getRepr() +
")";
96 int tx = CoordinateInterpolation(
m_img->getWidth(), x -
m_lpad);
97 int ty = CoordinateInterpolation(
m_img->getHeight(), y -
m_tpad);
98 return m_img->getValue(tx, ty);
121 auto wdiff =
m_width - img->getWidth();
122 auto hdiff =
m_height - img->getHeight();
132 template<
typename... Args>
138 return "PaddedImage(" +
m_img->getRepr() +
")";
165 #endif // _SEFRAMEWORK_IMAGE_PADDEDIMAGE_H
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y