This function is quite likely not respecting center-based World coordinates.
//##Documentation
//## @brief Convert world coordinates (in mm) of a \em point to index coordinates (in units). //## This method rounds to integer indices! template <unsigned int VIndexDimension> void WorldToIndex(const mitk::Point3D &pt_mm, itk::Index<VIndexDimension> &index) const { typedef itk::Index<VIndexDimension> IndexType; mitk::Point3D pt_units; WorldToIndex(pt_mm, pt_units); int i, dim=index.GetIndexDimension(); if(dim>3) { index.Fill(0); dim=3; } for(i=0;i<dim;++i){ if(pt_units[i]<0) pt_units[i]-=0.5; else pt_units[i]+=0.5; index[i]=(typename IndexType::IndexValueType)pt_units[i]; } }