@@ -74,19 +74,15 @@ MultiTransform<TParametersValueType, VDimension, VSubDimensions>::GetParameters(
7474 /* Resize destructively. But if it's already this size, nothing is done so
7575 * it's efficient. */
7676 this ->m_Parameters .SetSize (this ->GetNumberOfParameters ());
77- NumberOfParametersType offset{};
78- TransformQueueType transforms = this ->GetTransformQueue ();
79- typename TransformQueueType::const_iterator it;
80- it = transforms.begin ();
77+ NumberOfParametersType offset{};
8178
82- do
79+ for ( const TransformType * const transform : m_TransformQueue)
8380 {
84- const ParametersType & subParameters = (*it) ->GetParameters ();
81+ const ParametersType & subParameters = transform ->GetParameters ();
8582 /* use vnl_vector data_block() to get data ptr */
8683 std::copy_n (subParameters.data_block (), subParameters.Size (), &(this ->m_Parameters .data_block ())[offset]);
8784 offset += subParameters.Size ();
88- ++it;
89- } while (it != transforms.end ());
85+ }
9086
9187 return this ->m_Parameters ;
9288}
@@ -109,11 +105,9 @@ MultiTransform<TParametersValueType, VDimension, VSubDimensions>::SetParameters(
109105 << this ->GetNumberOfParameters () << ' .' );
110106 }
111107
112- TransformQueueType transforms = this ->GetTransformQueue ();
113108 NumberOfParametersType offset{};
114- auto it = transforms.begin ();
115109
116- do
110+ for (TransformType * const transform : m_TransformQueue)
117111 {
118112 /* If inputParams is same object as m_Parameters, we just pass
119113 * each sub-transforms own m_Parameters in. This is needed to
@@ -122,17 +116,16 @@ MultiTransform<TParametersValueType, VDimension, VSubDimensions>::SetParameters(
122116 * parameters to update member variable states. A hack. */
123117 if (&inputParameters == &this ->m_Parameters )
124118 {
125- (*it) ->SetParameters ((*it) ->GetParameters ());
119+ transform ->SetParameters (transform ->GetParameters ());
126120 }
127121 else
128122 {
129- const size_t parameterSize = (*it) ->GetParameters ().Size ();
130- (*it) ->CopyInParameters (&(inputParameters.data_block ())[offset],
131- &(inputParameters.data_block ())[offset] + parameterSize);
123+ const size_t parameterSize = transform ->GetParameters ().Size ();
124+ transform ->CopyInParameters (&(inputParameters.data_block ())[offset],
125+ &(inputParameters.data_block ())[offset] + parameterSize);
132126 offset += static_cast <NumberOfParametersType>(parameterSize);
133127 }
134- ++it;
135- } while (it != transforms.end ());
128+ }
136129}
137130
138131
@@ -145,20 +138,16 @@ MultiTransform<TParametersValueType, VDimension, VSubDimensions>::GetFixedParame
145138 * it's efficient. */
146139 this ->m_FixedParameters .SetSize (this ->GetNumberOfFixedParameters ());
147140
148- NumberOfParametersType offset{};
149- typename TransformQueueType::const_iterator it;
150- TransformQueueType transforms = this ->GetTransformQueue ();
151- it = transforms.begin ();
141+ NumberOfParametersType offset{};
152142
153- do
143+ for ( const TransformType * const transform : m_TransformQueue)
154144 {
155- const FixedParametersType & subFixedParameters = (*it) ->GetFixedParameters ();
145+ const FixedParametersType & subFixedParameters = transform ->GetFixedParameters ();
156146 /* use vnl_vector data_block() to get data ptr */
157147 std::copy_n (
158148 subFixedParameters.data_block (), subFixedParameters.Size (), &(this ->m_FixedParameters .data_block ())[offset]);
159149 offset += subFixedParameters.Size ();
160- ++it;
161- } while (it != transforms.end ());
150+ }
162151
163152 return this ->m_FixedParameters ;
164153}
@@ -178,21 +167,18 @@ MultiTransform<TParametersValueType, VDimension, VSubDimensions>::SetFixedParame
178167
179168 /* Assumes input params are concatenation of the parameters of the
180169 * sub transforms. */
181- TransformQueueType transforms = this ->GetTransformQueue ();
182170 NumberOfParametersType offset{};
183171
184172 /* Why is this done? Seems unnecessary. */
185173 this ->m_FixedParameters = inputParameters;
186174
187- auto it = transforms.begin ();
188- do
175+ for (TransformType * const transform : m_TransformQueue)
189176 {
190- const size_t fixedParameterSize = (*it) ->GetFixedParameters ().Size ();
191- (*it) ->CopyInFixedParameters (&(this ->m_FixedParameters .data_block ())[offset],
192- &(this ->m_FixedParameters .data_block ())[offset] + fixedParameterSize);
177+ const size_t fixedParameterSize = transform ->GetFixedParameters ().Size ();
178+ transform ->CopyInFixedParameters (&(this ->m_FixedParameters .data_block ())[offset],
179+ &(this ->m_FixedParameters .data_block ())[offset] + fixedParameterSize);
193180 offset += static_cast <NumberOfParametersType>(fixedParameterSize);
194- ++it;
195- } while (it != transforms.end ());
181+ }
196182}
197183
198184
@@ -318,15 +304,13 @@ template <typename TParametersValueType, unsigned int VDimension, unsigned int V
318304bool
319305MultiTransform<TParametersValueType, VDimension, VSubDimensions>::GetInverse(Self * inverse) const
320306{
321- typename TransformQueueType::const_iterator it;
322-
323307 // NOTE: MultiTransform delegates to
324308 // individual transform for setting FixedParameters
325309 // inverse->SetFixedParameters( this->GetFixedParameters() );
326310 inverse->ClearTransformQueue ();
327- for (it = this -> m_TransformQueue . begin (); it != this -> m_TransformQueue . end (); ++it )
311+ for (const TransformType * const transform : m_TransformQueue )
328312 {
329- TransformTypePointer inverseTransform = ((*it) ->GetInverseTransform ()).GetPointer ();
313+ TransformTypePointer inverseTransform = (transform ->GetInverseTransform ()).GetPointer ();
330314 if (!inverseTransform)
331315 {
332316 inverse->ClearTransformQueue ();
@@ -350,11 +334,10 @@ MultiTransform<TParametersValueType, VDimension, VSubDimensions>::PrintSelf(std:
350334 Superclass::PrintSelf (os, indent);
351335
352336 os << indent << " TransformQueue: " << std::endl;
353- typename TransformQueueType::const_iterator cit;
354- for (cit = this ->m_TransformQueue .begin (); cit != this ->m_TransformQueue .end (); ++cit)
337+ for (const TransformType * const transform : m_TransformQueue)
355338 {
356339 os << indent << " >>>>>>>>>" << std::endl;
357- (*cit) ->Print (os, indent);
340+ transform ->Print (os, indent);
358341 }
359342}
360343
0 commit comments