Perhaps the constructor needs another argument name numberOfFixedParameters, 
which defaults to the prior argument?

Brad

On Oct 28, 2014, at 1:21 PM, Williams, Norman K <[email protected]> 
wrote:

> This is mostly for Bradley Lowenkamp and Matt McCormick, but at some point 
> the wider developer community will be affected and input solicited.
> 
> The MatrixOffsetTransformBase has 3 values in its FixedParameters, which is 
> the values of the center of rotation.
> 
> There was a mystery as to why MatrixOffsetTransformBase starts out with 12 
> fixed parameters, when it only really has 3.
> 
> The reason is in the constructor for Transform, which initializes the 
> FixedParameters to have the same number of values as the Parameters.
> 
> This is a design flaw; it represents the Anti-Pattern “Initialize a 
> member/variable to a default that is almost always wrong.”
> 
> This leads to most Transform classes resizing the FixedParameters when 
> GetFixedParameters is called, and assigning their value based on the actual 
> fixed parameters for that Transform class.
> 
> This is thread-unsafe, since resizing m_FixedParameters involves  a 
> free/allocate pair.
> 
> template <typename TScalar,
>           unsigned int NInputDimensions,
>           unsigned int NOutputDimensions>
> Transform<TScalar, NInputDimensions, NOutputDimensions>
> ::Transform(NumberOfParametersType numberOfParameters) :
>   m_Parameters(numberOfParameters),
>   m_FixedParameters(numberOfParameters)
> #ifdef ITKV3_COMPATIBILITY
>   , m_SharedLocalJacobian(NOutputDimensions, numberOfParameters)
> #endif
> {
> }
> 
> 
> 
> Notice: This UI Health Care e-mail (including attachments) is covered by the 
> Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential 
> and may be legally privileged.  If you are not the intended recipient, you 
> are hereby notified that any retention, dissemination, distribution, or 
> copying of this communication is strictly prohibited.  Please reply to the 
> sender that you have received the message in error, then delete it.  Thank 
> you.
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.php
> 
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-developers

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-developers

Reply via email to