From 7cf3d06d128c0ebc3696ac15fe65db4568c30280 Mon Sep 17 00:00:00 2001 From: Guillaume Pasero <guillaume.pasero@c-s.fr> Date: Wed, 6 Aug 2014 15:52:03 +0200 Subject: [PATCH] BUG: Mantis-942: missing rounding when translating continuous index to index --- Code/Common/otbPolyLineImageConstIterator.txx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Code/Common/otbPolyLineImageConstIterator.txx b/Code/Common/otbPolyLineImageConstIterator.txx index fa82b3596d..2016bf5dc4 100644 --- a/Code/Common/otbPolyLineImageConstIterator.txx +++ b/Code/Common/otbPolyLineImageConstIterator.txx @@ -39,7 +39,7 @@ PolyLineImageConstIterator<TImage, TPath> IndexType source, target; for (unsigned int i = 0; i < ImageType::ImageDimension; ++i) { - source[i] = static_cast<unsigned int> (m_InternalVertexIterator.Value()[i]); + source[i] = static_cast<unsigned int> (vcl_floor(m_InternalVertexIterator.Value()[i] + 0.5)); } ++m_InternalVertexIterator; if (m_InternalVertexIterator != m_Path->GetVertexList()->End()) @@ -47,7 +47,7 @@ PolyLineImageConstIterator<TImage, TPath> for (unsigned int i = 0; i < ImageType::ImageDimension; ++i) { - target[i] = static_cast<unsigned int> (m_InternalVertexIterator.Value()[i]); + target[i] = static_cast<unsigned int> (vcl_floor(m_InternalVertexIterator.Value()[i] + 0.5)); } } else @@ -78,7 +78,7 @@ PolyLineImageConstIterator<TImage, TPath> IndexType source, target; for (unsigned int i = 0; i < ImageType::ImageDimension; ++i) { - source[i] = static_cast<unsigned int> (m_InternalVertexIterator.Value()[i]); + source[i] = static_cast<unsigned int> (vcl_floor(m_InternalVertexIterator.Value()[i] + 0.5)); } ++m_InternalVertexIterator; if (m_InternalVertexIterator != m_Path->GetVertexList()->End()) @@ -86,7 +86,7 @@ PolyLineImageConstIterator<TImage, TPath> for (unsigned int i = 0; i < ImageType::ImageDimension; ++i) { - target[i] = static_cast<unsigned int> (m_InternalVertexIterator.Value()[i]); + target[i] = static_cast<unsigned int> (vcl_floor(m_InternalVertexIterator.Value()[i] + 0.5)); } } else @@ -110,7 +110,7 @@ PolyLineImageConstIterator<TImage, TPath> IndexType source; for (unsigned int i = 0; i < ImageType::ImageDimension; ++i) { - source[i] = static_cast<unsigned int> (m_InternalVertexIterator.Value()[i]); + source[i] = static_cast<unsigned int> (vcl_floor(m_InternalVertexIterator.Value()[i] + 0.5)); } // otbMsgDebugMacro(<<"Source: "<<source); ++m_InternalVertexIterator; @@ -119,7 +119,7 @@ PolyLineImageConstIterator<TImage, TPath> IndexType target; for (unsigned int i = 0; i < ImageType::ImageDimension; ++i) { - target[i] = static_cast<unsigned int> (m_InternalVertexIterator.Value()[i]); + target[i] = static_cast<unsigned int> (vcl_floor(m_InternalVertexIterator.Value()[i] + 0.5)); } // otbMsgDebugMacro(<<"Target: "<<target); m_InternalImageIterator = InternalImageIteratorType(const_cast<ImageType *> (m_Image.GetPointer()), source, -- GitLab