diff --git a/modules/img/alg/src/discrete_shrink.cc b/modules/img/alg/src/discrete_shrink.cc index 3398c820b8f05e528f6bcdfd5aa26ab47d328121..d3413f0f3a7dc9ad96983825adf21417089654fb 100644 --- a/modules/img/alg/src/discrete_shrink.cc +++ b/modules/img/alg/src/discrete_shrink.cc @@ -74,6 +74,8 @@ ImageStateBasePtr DiscreteShrinkFnc::VisitState(const ImageStateImpl<T,D>& isi) LOG_VERBOSE("ds: " << isi.GetExtent() << " " << new_ext << std::endl); + + geom::Vec3 ao = isi.GetAbsoluteOrigin(); PixelSampling new_ps = isi.GetSampling(); new_ps.SetExtent(new_ext); @@ -97,6 +99,7 @@ ImageStateBasePtr DiscreteShrinkFnc::VisitState(const ImageStateImpl<T,D>& isi) LOG_VERBOSE("ds: newstart: " << newstart << std::endl); + ni->SetAbsoluteOrigin(ao); ni->SetSpatialOrigin(newstart); ni->GetSampling().SetPixelSampling(CompMultiply(ni->GetSampling().GetPixelSampling(),Vec3(bs_[0],bs_[1],bs_[2]))); diff --git a/modules/img/base/src/image_handle.cc b/modules/img/base/src/image_handle.cc index 712868a3181ed0fa47d7989748b759abb18a5dc1..de4e5c5dfd3391a34f83c58e1866f336ed7b59fc 100644 --- a/modules/img/base/src/image_handle.cc +++ b/modules/img/base/src/image_handle.cc @@ -90,6 +90,9 @@ ImageHandle ImageHandle::Copy(bool cc) const copy constructor,with the cloned ImageStateBasePtr as a parameter. This new ptr on the heap is then in turn used to initialize the StatePtrPtr. */ + + ImageHandle copy_img = ImageHandle(StatePtrPtr(new ImageStateBasePtr(ImageStatePtr()->Clone(cc)))); + copy_img.SetAbsoluteOrigin(ImageStatePtr()->GetAbsoluteOrigin()); return ImageHandle(StatePtrPtr(new ImageStateBasePtr(ImageStatePtr()->Clone(cc)))); }