21 #ifndef reg3d_deformer_hh
22 #define reg3d_deformer_hh
25 #include <tbb/parallel_for.h>
26 #include <tbb/blocked_range.h>
60 std::unique_ptr<T3DConvoluteInterpolator<T> > interp(m_ipfac.
create(image.
data()));
61 const auto& rinterp = *interp;
63 auto callback = [
this, &rinterp, &result](
const tbb::blocked_range<size_t>& range){
65 CWeightCache cache = rinterp.create_cache();
66 for (
auto z = range.begin(); z != range.end();++z) {
69 for (
size_t y = 0; y < result.
get_size().
y; ++y)
70 for (
size_t x = 0; x < result.
get_size().
x; ++x, ++r, ++v)
71 *r = rinterp(
C3DFVector(x - v->x, y - v->y, z - v->z), cache);
74 tbb::parallel_for(tbb::blocked_range<size_t>(0, result.
get_size().
z, 1), callback);