X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkAffineTransformGenericFilter.txx;h=93cd16c91c2928455b4af569a450a985ecaa0a49;hb=a386a950bd841d0f57ca636f9d1f789670924828;hp=ec9db098493cb873f1f0d4478696b48da1e5b0f6;hpb=99a4e52ce46e7018a46e94ad4925858165463c1d;p=clitk.git diff --git a/tools/clitkAffineTransformGenericFilter.txx b/tools/clitkAffineTransformGenericFilter.txx index ec9db09..93cd16c 100644 --- a/tools/clitkAffineTransformGenericFilter.txx +++ b/tools/clitkAffineTransformGenericFilter.txx @@ -143,14 +143,23 @@ AffineTransformGenericFilter::UpdateWithDimAndPixelType() return; } itk::Array transformParameters(2 * Dimension); - int pos = 0; - if (Dimension == 2) - transformParameters[pos++] = m_ArgsInfo.rotate_arg[0]; - else - for (unsigned int i = 0; i < 3; i++) - transformParameters[pos++] = m_ArgsInfo.rotate_arg[i]; - for (unsigned int i = 0; i < Dimension && i < 3; i++) - transformParameters[pos++] = m_ArgsInfo.translate_arg[i]; + transformParameters.Fill(0.0); + if (m_ArgsInfo.rotate_given) + { + if (Dimension == 2) + transformParameters[0] = m_ArgsInfo.rotate_arg[0]; + else + for (unsigned int i = 0; i < 3; i++) + transformParameters[i] = m_ArgsInfo.rotate_arg[i]; + } + if (m_ArgsInfo.translate_given) + { + int pos = 3; + if (Dimension == 2) + pos = 1; + for (unsigned int i = 0; i < Dimension && i < 3; i++) + transformParameters[pos++] = m_ArgsInfo.translate_arg[i]; + } if (Dimension == 4) { matrix.SetIdentity(); @@ -326,14 +335,23 @@ void AffineTransformGenericFilter::UpdateWithDimAndVectorType() return; } itk::Array transformParameters(2 * Dimension); - int pos = 0; - if (Dimension == 2) - transformParameters[pos++] = m_ArgsInfo.rotate_arg[0]; - else - for (unsigned int i = 0; i < 3; i++) - transformParameters[pos++] = m_ArgsInfo.rotate_arg[i]; - for (unsigned int i = 0; i < Dimension && i < 3; i++) - transformParameters[pos++] = m_ArgsInfo.translate_arg[i]; + transformParameters.Fill(0.0); + if (m_ArgsInfo.rotate_given) + { + if (Dimension == 2) + transformParameters[0] = m_ArgsInfo.rotate_arg[0]; + else + for (unsigned int i = 0; i < 3; i++) + transformParameters[i] = m_ArgsInfo.rotate_arg[i]; + } + if (m_ArgsInfo.translate_given) + { + int pos = 3; + if (Dimension == 2) + pos = 1; + for (unsigned int i = 0; i < Dimension && i < 3; i++) + transformParameters[pos++] = m_ArgsInfo.translate_arg[i]; + } if (Dimension == 4) { matrix.SetIdentity();